JSF参数传递方式说明
先说明一种:
-----------------------------------------
<h:commandLink value="整理材料 " action="#{documentPressBackingBean.cleanDatum}" target="HideFrame"> <f:param name="documentArchiveId" value="#{pre.documentArchiveId}"></f:param></h:commandLink><h:outputLabel styleid="show"></h:outputLabel><h:commandButton value="整理材料" action="#{documentPressBackingBean.cleanDatum}" onclick="this.form.target='HideFrame';" style="display:none"><x:updateActionListener property="#{documentPressBackingBean.documentArchiveId}" value="#{pre.documentArchiveId}" /></h:commandButton><h:form> <h:commandLink value="Test2" action="#{paramBean.test}"> <f:param name="name" value="zhang"></f:param> <f:param name="id" value="123456"></f:param> </h:commandLink> </h:form> HttpServletRequest request = (HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest(); request.getParameter("name"); Map varMap = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap(); varMap.get("id"); <managed-bean> <managed-bean-name>paramBean</managed-bean-name> <managed-bean-class>com.spg.bean.ParamBean</managed-bean-class> <managed-bean-scope>request</managed-bean-scope> <managed-property> <property-name>id</property-name> <property-class>java.lang.String</property-class> <value>#{param.id} </value> </managed-property> </managed-bean> <h:outputLink value="param2.jsf"> <h:outputText value="Test4"></h:outputText> <f:param name="name" value="chen"></f:param> <f:param name="id" value="123456"></f:param> </h:outputLink>
<h:outputLink value="param2.jsf?name=chen&id=123456"> <h:outputText value="Test4"></h:outputText> </h:outputLink>
<h:outputText value="#{param.name}"></h:outputText> <h:outputText value="#{param.id}"></h:outputText> <%=request.getParameter("name")%> <%=request.getParameter("id")%> Backing Beanimport javax.faces.component.UIInput; import javax.faces.component.UIOutput; public class BackingBean { private UIOutput idComponent; public UIOutput getIdComponent() { return idComponent; } public void setIdComponent(UIOutput idComponent) { this.idComponent = idComponent; } } <h:form> <h:inputHidden value="123456" binding="#{backingBean.idComponent}"></h:inputHidden> <h:commandButton value="登录" action="#{paramBean.login}"></h:commandButton> </h:form> FacesContext context = FacesContext.getCurrentInstance(); BackingBean backBean =(BackingBean)context.getApplication().getVariableResolver().resolveVariable(context,"backingBean");//该方法已经过时 BackingBean bean =(BackingBean)context.getApplication().getELResolver().getValue(context.getELContext(), null, "backingBean"); backBean.getIdComponent().getValue(); bean.getIdComponent().getValue(); FacesContext context = FacesContext.getCurrentInstance();
<h:form> <h:inputHidden value="123456" binding="#{backingBean.idComponent}"></h:inputHidden> <h:commandButton value="Test5" action="param"></h:commandButton> <h:commandLink value="Test6" action="param"></h:commandLink> </h:form> <h:outputText value="#{backingBean.idComponent.value}"></h:outputText> <h:form> <%session.setAttribute("name","hujilie"); %> <%application.setAttribute("id","123456"); %> <h:commandButton value="Test8" action="#{paramBean.test2}"></h:commandButton> <h:commandLink value="Test8" action="#{paramBean.test2}"></h:commandLink> </h:form> FacesContext context = FacesContext.getCurrentInstance(); Map sessionMap =context.getExternalContext().getSessionMap(); Map applicationMap = context.getExternalContext().getApplicationMap(); HttpSession session =(HttpSession) context.getExternalContext().getSession(true); ServletContext application = (ServletContext)context.getExternalContext().getContext(); sessionMap.get("name"); applicationMap.get("id"); session.getAttribute("name"); application.getAttribute("id"); <h:form> <%session.setAttribute("name","hujilie"); %> <%application.setAttribute("id","123456"); %> <h:outputLink value="param2.jsf">Test10</h:outputLink> </h:form> <h:outputText value="#{sessionScope.name}"></h:outputText><br> <h:outputText value="#{applicationScope.id}"></h:outputText> <h:form> <h:commandButton action="#{paramBean.test3}" value="Test11" actionListener="#{paramBean.changeName}"> <f:attribute name="name" value="hujilie"/> </h:commandButton> <h:commandLink action="#{paramBean.test3}" value="Test12" actionListener="#{paramBean.changeName}"> <f:attribute name="name" value="hujilie"/> </h:commandLink> </h:form> public void changeName(ActionEvent e) { UIComponent component = e.getComponent(); Map<String, Object> map = component.getAttributes(); setName((String)map.get("name")); } <h:form> <h:commandButton action="#{paramBean.test3}" value="Test14"> <f:setPropertyActionListener value="hujilie" target="#{paramBean.name}"/> </h:commandButton> <h:commandLink action="#{paramBean.test3}" value="Test15"> <f:setPropertyActionListener value="hujilie" target="#{paramBean.name}"/> </h:commandLink> </h:form>