JSF从page1到page2(看不到第2页)

时间:2013-03-07 17:36:23

标签: java jsp jsf java-ee

我有一个网页:尝试,从那个页面我想去另一个页面:TRY2

jsp TRY.jsp:

    <%@taglib uri="http://www.sun.com/webui/webuijsf" prefix="webuijsf"%><%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
    <%@ taglib prefix="f"  uri="http://java.sun.com/jsf/core"%>
    <%@ taglib prefix="h"  uri="http://java.sun.com/jsf/html"%>
    <f:view>
<f:loadBundle basename="it.eni.italgas.sam.web.dictionary"
    var="bundle" />
<webuijsf:page id="page1" rendered="#{UserBean.userEnabled}">
    <webuijsf:html id="html1">
        <webuijsf:head id="head1" parseOnLoad="false"
            title="Pagina di prova" webuiOnLoad="false">
            <webuijsf:link id="link1" url="/resources/stylesheet.css" />
        </webuijsf:head>
        <webuijsf:body id="body1" style="-rave-layout: grid"
        styleClass="pageLayout">

            <webuijsf:form id="form1">
            <webuijsf:button actionExpression="#{Prova.button1_action}"
                id="button1"
                style="height: 24px; left: 23px; top: 216px; position: absolute; width: 72px"
                text="#{bundle.TastoConferma}" />
            <webuijsf:calendar dateFormatPattern="dd/MM/yyyy"
                dateFormatPatternHelp="dd/MM/yyyy" id="startDate" immediate="true"
                selectedDate="#{ALGUISessionBean.startDate}"
                style="height: 24px; left: 168px; top: 120px; position: absolute; width: 192px" />
            <webuijsf:calendar dateFormatPattern="dd/MM/yyyy"
                dateFormatPatternHelp="dd/MM/yyyy" id="endDate" immediate="true"
                selectedDate="#{ALGUISessionBean.endDate}"
                style="height: 24px; left: 168px; top: 168px; position: absolute; width: 192px" />
            <webuijsf:dropDown binding="#{AlGui02_1.dropDown1}" id="dropDown1"
                items="#{ALGUI02RequestBean.dropDownPlantList_ricerca}"
                selected="#{ALGUISessionBean.dropDown1SelectedOption_ricerca}"
                style="height: 24px; left: 168px; top: 72px; position: absolute"
                width="260" />
            <webuijsf:label id="label4"
                style="height: 24px; left: 24px; top: 72px; position: absolute; width: 142px"
                text="#{bundle.NomeImpiantoProva}" />
            <webuijsf:label id="label1"
                style="font-size: 14px; height: 24px; left: 24px; top: 24px; position: absolute; width: 432px"
                text="#{bundle.TitoloGuiProva}" />
            <webuijsf:label id="label2"
                style="height: 24px; left: 24px; top: 120px; position: absolute; width: 142px"
                text="#{bundle.DataInizioProva}" />
            <webuijsf:label id="label3"
                style="height: 24px; left: 24px; top: 168px; position: absolute; width: 142px"
                text="#{bundle.DataFineProva}" />
            <webuijsf:message for="startDate" id="message1" showDetail="false"
                showSummary="true"
                style="position: absolute; left: 384px; top: 120px; width: 168px; height: 24px" />
            <webuijsf:message for="endDate" id="message2" showDetail="false"
                showSummary="true"
                style="position: absolute; left: 384px; top: 168px; width: 168px; height: 24px" />
            <h:messages errorClass="errorMessage" fatalClass="fatalMessage"
                globalOnly="true" id="messageList1" infoClass="infoMessage"
                style="border-width: 1px; height: 22px; left: 24px; top: 264px; position: absolute"
                warnClass="warnMessage" />
            <br />
        </webuijsf:form>
    </webuijsf:body>
    </webuijsf:html>
</webuijsf:page>

TRY2的jsp:

  <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
  <%@taglib uri="http://www.sun.com/webui/webuijsf" prefix="webuijsf"%>
  <%@ taglib prefix="f"  uri="http://java.sun.com/jsf/core"%>
  <%@ taglib prefix="h"  uri="http://java.sun.com/jsf/html"%>
  <f:view>

<webuijsf:page id="page1">
    <webuijsf:html id="html1">
        <webuijsf:head id="head1" parseOnLoad="false"
            title="Pagina di prova2" webuiOnLoad="false">
            <webuijsf:link id="link1" url="/resources/stylesheet.css" />
        </webuijsf:head>
        <webuijsf:body id="body1" style="-rave-layout: grid"
        styleClass="pageLayout">

        TRY TRY

        </webuijsf:body>
    </webuijsf:html>
</webuijsf:page>

用于TRY的java托管bean:

public class TRY extends AbstractPageBean{

private String nomeClasse = this.getClass().getSimpleName();
private String distrib = getUserBean().getCurrentDatasource();
private String username = getUserBean().getUser();
private Date startDate;
private Date endDate;
private DropDown dropDown1;

private Logger logger;

public TRY() {

    logger = Logger.getLogger(getClass());

    logger.debug("Class TRY....");
}

@Override
public void init() {
    super.init();


    try {
        log(LogMessages.getLogString(username, distrib, nomeClasse, LogMessages.INIT, LogMessages.INIT_OK), null);
    } catch (Exception e) {
        log(LogMessages.getLogString(username, distrib, nomeClasse, LogMessages.INIT, "KO: " + e.getMessage()), null);
        throw e instanceof FacesException ? (FacesException) e : new FacesException(e);
    }
}

@Override
public void preprocess() {
    try {


        getUserBean().navigationStatus();
        log(LogMessages.getLogString(username, distrib, nomeClasse, LogMessages.PREPROCESS, "OK"), null);
    } catch (IOException e) {
        log(LogMessages.getLogString(username, distrib, nomeClasse, LogMessages.PREPROCESS, "KO: " + e.getMessage()), null);
    }
}

@Override
public void prerender() {
    try {

        logger.debug("Class TRY....PRERENDER");

        getUserBean().navigationStatus();
        log(LogMessages.getLogString(username, distrib, nomeClasse, LogMessages.PRERENDER, "OK"), null);

        ALGUISessionBean session = getALGUISessionBean();

        if (session.isError()) {
            log(LogMessages.getLogString(username, distrib, nomeClasse, LogMessages.PRERENDER, LogMessages.PRERENDER_VAL_ER), null);
            session.setError(false);
        } else {
            resetOwnSessionVars();
        }

        logger.debug("Classe di prova....PRERENDER fine");
    } catch (Exception e) {
        log(LogMessages.getLogString(username, distrib, nomeClasse, LogMessages.PRERENDER, "KO: " + e.getMessage()), null);
    }
}

@Override
public void destroy() {
    log(LogMessages.getLogString(username, distrib, nomeClasse, LogMessages.DESTROY, LogMessages.DESTROYED), null);
}

/* -------------------
 * - GETTER & SETTER -
 * ------------------*/
protected ALGUISessionBean getALGUISessionBean() {
    return (ALGUISessionBean) getBean("ALGUISessionBean");
}

protected UserBean getUserBean() {
    return (UserBean) getBean("UserBean");
}

public DropDown getDropDown1() {
    return dropDown1;
}

public void setDropDown1(DropDown dd) {
    this.dropDown1 = dd;
}

private void resetOwnSessionVars() {

    ALGUISessionBean session = getALGUISessionBean();

    log(LogMessages.getLogString(username, distrib, nomeClasse, "resetOwnSessionVars", LogMessages.INIZIO), null);
    session.setStartDate(null);
    session.setEndDate(null);
    session.setdropDown1SelectedOption_ricerca(null);
    session.setPlantLabel(null);
    log(LogMessages.getLogString(username, distrib, nomeClasse, "resetOwnSessionVars", LogMessages.FINE), null);
}

public String button1_action() {

     logger.debug("Class prova....button1_action ");
     ALGUISessionBean session = getALGUISessionBean();

     log(LogMessages.getLogString(username, distrib, nomeClasse, LogMessages.BUTTON1, LogMessages.INIZIO), null);

     session.setStartDate(startDate);
     session.setEndDate(endDate);
     logger.debug("Class prova....button1_action return ");

     return "TRY2";
}

}

TRY2的java托管bean:

public class TRY2 extends AbstractPageBean{

private String nomeClasse = this.getClass().getSimpleName();
private String distrib = getUserBean().getCurrentDatasource();
private String username = getUserBean().getUser();


private Logger logger;

public TRY2() {

    logger = Logger.getLogger(getClass());

    logger.debug("Class  TRY2....");
}

@Override
public void init() {
    super.init();


    try {
        log(LogMessages.getLogString(username, distrib, nomeClasse, LogMessages.INIT, LogMessages.INIT_OK), null);
    } catch (Exception e) {
        log(LogMessages.getLogString(username, distrib, nomeClasse, LogMessages.INIT, "KO: " + e.getMessage()), null);
        throw e instanceof FacesException ? (FacesException) e : new FacesException(e);
    }
}

@Override
public void preprocess() {
    try {


        getUserBean().navigationStatus();
        log(LogMessages.getLogString(username, distrib, nomeClasse, LogMessages.PREPROCESS, "OK"), null);
    } catch (IOException e) {
        log(LogMessages.getLogString(username, distrib, nomeClasse, LogMessages.PREPROCESS, "KO: " + e.getMessage()), null);
    }
}

@Override
public void prerender() {
    try {

        logger.debug("Class  TRY2....PRERENDER");

        getUserBean().navigationStatus();
        log(LogMessages.getLogString(username, distrib, nomeClasse, LogMessages.PRERENDER, "OK"), null);

    } catch (Exception e) {
        log(LogMessages.getLogString(username, distrib, nomeClasse, LogMessages.PRERENDER, "KO: " + e.getMessage()), null);
    }

    ALGUISessionBean session = getALGUISessionBean();

    if (session.isError()) {
        log(LogMessages.getLogString(username, distrib, nomeClasse, LogMessages.PRERENDER, LogMessages.PRERENDER_VAL_ER), null);
        session.setError(false);
    } else {
        resetOwnSessionVars();
    }
}

@Override
public void destroy() {
    log(LogMessages.getLogString(username, distrib, nomeClasse, LogMessages.DESTROY, LogMessages.DESTROYED), null);
}

/* -------------------
 * - GETTER & SETTER -
 * ------------------*/
protected ALGUISessionBean getALGUISessionBean() {
    return (ALGUISessionBean) getBean("ALGUISessionBean");
}

protected UserBean getUserBean() {
    return (UserBean) getBean("UserBean");
}
}
}

和face-config.xml中的naviagion规则

   <navigation-rule>
     <from-view-id>/TRY.jsp</from-view-id>
   <navigation-case>
   <from-outcome>TRY2</from-outcome>
   <to-view-id>/TRY2.jsp</to-view-id>
   </navigation-case>
   </navigation-rule>



  <managed-bean>
  <managed-bean-name>TRY</managed-bean-name>
  <managed-bean-class>web.TRY</managed-bean-class>
  <managed-bean-scope>request</managed-bean-scope>
  </managed-bean>
  <managed-bean>
  <managed-bean-name>TRY2</managed-bean-name>
  <managed-bean-class>web.TRY2</managed-bean-class>
  <managed-bean-scope>request</managed-bean-scope>
  </managed-bean>

记录器告诉我:

  logger.debug("Class TRY....button1_action ");    

  logger.debug("Class TRY....button1_action return ");

所以这意味着它进入方法button_click

我看到它记录:

  logger.debug("Class TRY2....");

  logger.debug("Class TRY2....PRERENDER");

所以这意味着它进入了bean TRY2

但是在我看不到页面TRY2之后为什么?

我看到javascript说:

  <script type="text/javascript">new webui.suntheme4_2.body('/TRY2.jsp', '/sam-fe-web/faces/TRY2.jsp',null,null,'com_sun_webui_util_FocusManager_focusElementId',true);</script></body></html>


  Uncaught TypeError: undefined is not a function

任何帮助?

没有人真的非常感谢你......

解决方案是添加

private void _init() throws Exception {
}

private Page page1 = new Page();

public Page getPage1() {
    return page1;
}

public void setPage1(Page p) {
    this.page1 = p;
}
private Html html1 = new Html();

public Html getHtml1() {
    return html1;
}

public void setHtml1(Html h) {
    this.html1 = h;
}
private Head head1 = new Head();

public Head getHead1() {
    return head1;
}

public void setHead1(Head h) {
    this.head1 = h;
}
private Link link1 = new Link();

public Link getLink1() {
    return link1;
}

public void setLink1(Link l) {
    this.link1 = l;
}
private Body body1 = new Body();

public Body getBody1() {
    return body1;
}

public void setBody1(Body b) {
    this.body1 = b;
}
private Form form1 = new Form();

public Form getForm1() {
    return form1;
}

public void setForm1(Form f) {
    this.form1 = f;
}
private Link link2 = new Link();

public Link getLink2() {
    return link2;
}

public void setLink2(Link l) {
    this.link2 = l;
}

  public void init() {
    super.init();


    logger.debug("Classe di prova....INIT");

    try {
         _init();
        log(LogMessages.getLogString(username, distrib, nomeClasse, LogMessages.INIT, LogMessages.INIT_OK), null);
    } catch (Exception e) {
        log(LogMessages.getLogString(username, distrib, nomeClasse, LogMessages.INIT, "KO: " + e.getMessage()), null);
        throw e instanceof FacesException ? (FacesException) e : new FacesException(e);
    }
}

1 个答案:

答案 0 :(得分:0)

 add this into the TRY2.java class

 private void _init() throws Exception {
 }

 private Page page1 = new Page();

 public Page getPage1() {
      return page1;
 }

 public void setPage1(Page p) {
     this.page1 = p;
 }
 private Html html1 = new Html();

 public Html getHtml1() {
     return html1;
 }

 public void setHtml1(Html h) {
     this.html1 = h;
 }
 private Head head1 = new Head();

 public Head getHead1() {
     return head1;
 }

 public void setHead1(Head h) {
     this.head1 = h;
 }
 private Link link1 = new Link();

 public Link getLink1() {
     return link1;
 }

 public void setLink1(Link l) {
     this.link1 = l;
 }
 private Body body1 = new Body();

 public Body getBody1() {
     return body1;
 }

 public void setBody1(Body b) {
     this.body1 = b;
 }
 private Form form1 = new Form();

 public Form getForm1() {
     return form1;
 }

 public void setForm1(Form f) {
     this.form1 = f;
 }
 private Link link2 = new Link();

 public Link getLink2() {
          return link2;
 }

 public void setLink2(Link l) {
     this.link2 = l;
 }

以这种方式编辑init():

public void init() {
super.init();


logger.debug("Classe di prova....INIT");

try {
     _init();
    log(LogMessages.getLogString(username, distrib, nomeClasse, LogMessages.INIT, LogMessages.INIT_OK), null);
} catch (Exception e) {
    log(LogMessages.getLogString(username, distrib, nomeClasse, LogMessages.INIT, "KO: " + e.getMessage()), null);
    throw e instanceof FacesException ? (FacesException) e : new FacesException(e);
}
}