JSF参数传递方式说明
来源:互联网 发布:MP3音序软件 编辑:程序博客网 时间:2024/05/19 02:40
先说明一种:
-----------------------------------------
<h:commandLink value="整理材料 " action="#{documentPressBackingBean.cleanDatum}" target="HideFrame">
<f:param name="documentArchiveId" value="#{pre.documentArchiveId}"></f:param>
</h:commandLink>
<h:outputLabel styleClass="icoArrange" id="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>
------------------------------------------------
以下是其他方式:
JSF参数传递方式之一:f:param标签
页面到Bean的参数传递
页面中设置参数:
Java代码
<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>
<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>
注意:这里只能使用h:commandLink标签,而不能使用h:commandButton标签!
后台取参数:
(1) 通过Request对象取值
Java代码
HttpServletRequest request = (HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest();
request.getParameter("name");
HttpServletRequest request = (HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest();
request.getParameter("name");
(2)通过RequestParameterMap取值
Java代码
Map varMap = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap();
varMap.get("id");
Map varMap = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap();
varMap.get("id");
(3)通过配置文件进行Bean的属性值注入,在Bean的方法中直接使用属性
Java代码
<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>
<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>
页面到页面的参数传递
页面中设置参数:
(1)
Java代码
<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">
<h:outputText value="Test4"></h:outputText>
<f:param name="name" value="chen"></f:param>
<f:param name="id" value="123456"></f:param>
</h:outputLink>
(2)
Java代码
<h:outputLink value="param2.jsf?name=chen&id=123456">
<h:outputText value="Test4"></h:outputText>
</h:outputLink>
<h:outputLink value="param2.jsf?name=chen&id=123456">
<h:outputText value="Test4"></h:outputText>
</h:outputLink>
注意:以上两种方法,不能同时使用!
页面中取参数:
(1) 使用JSF的值表达式
Java代码
<h:outputText value="#{param.name}"></h:outputText>
<h:outputText value="#{param.id}"></h:outputText>
<h:outputText value="#{param.name}"></h:outputText>
<h:outputText value="#{param.id}"></h:outputText>
(2) 使用JSP的表达式
Java代码
<%=request.getParameter("name")%>
<%=request.getParameter("id")%>
JSF参数传递方式之二:Backing Bean 与 h:inputHidden标签
Backing Bean
Java代码
import 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;
}
}
import 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;
}
}
页面到Bean的参数传递
页面中设置参数:
Java代码
<h:form>
<h:inputHidden value="123456" binding="#{backingBean.idComponent}"></h:inputHidden>
<h:commandButton value="登录" action="#{paramBean.login}"></h:commandButton>
</h:form>
<h:form>
<h:inputHidden value="123456" binding="#{backingBean.idComponent}"></h:inputHidden>
<h:commandButton value="登录" action="#{paramBean.login}"></h:commandButton>
</h:form>
后台取参数:
Java代码
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();
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();
2.2页面到页面的参数传递
页面中设置参数:
Java代码
<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: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:outputLink 标签不能使用该方式传递参数!
页面中取参数:
Java代码
<h:outputText value="#{backingBean.idComponent.value}"></h:outputText>
JSF参数传递方式之三:通过session(application)对象传递
页面到Bean的参数传递
页面中设置参数:
Java代码
<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>
<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>
后台取参数:
Java代码
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");
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");
页面到页面的参数传递
页面中设置参数:
Java代码
<h:form>
<%session.setAttribute("name","hujilie"); %>
<%application.setAttribute("id","123456"); %>
<h:outputLink value="param2.jsf">Test10</h:outputLink>
</h:form>
<h:form>
<%session.setAttribute("name","hujilie"); %>
<%application.setAttribute("id","123456"); %>
<h:outputLink value="param2.jsf">Test10</h:outputLink>
</h:form>
页面中取参数:
Java代码
<h:outputText value="#{sessionScope.name}"></h:outputText><br>
<h:outputText value="#{applicationScope.id}"></h:outputText>
JSF参数传递方式之四:f:attribute标签传递
页面到Bean的参数传递
页面中设置参数:
Java代码
<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>
<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>
后台取参数:
Java代码
public void changeName(ActionEvent e)
{
UIComponent component = e.getComponent();
Map<String, Object> map = component.getAttributes();
setName((String)map.get("name"));
}
JSF参数传递方式之五:f:setPropertyActionListener 标签传递
页面到Bean的参数传递
页面中设置参数:
Java代码
<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>
<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>
后台取参数:直接使用属性的值。
- JSF参数传递方式说明
- JSF参数传递方式
- JSF request参数传递
- jsf传递参数
- JSF request参数传递
- JSF的参数传递
- JSF参数传递方式之f:param标签和f:attribute区别
- 函数参数传递说明
- JSF中传递参数的问题
- jsf页面之间中文参数传递设置
- 通过URL传递参数到JSF
- Java参数传递方式
- Java参数传递方式
- matlab参数传递方式
- Java参数传递方式
- java 参数传递方式
- C#参数传递方式
- 参数的传递方式
- 数组参数
- Ajax中同步与异步区别的直观性说明
- Qt二进制安装文件下载地址
- 内核线程学习笔记总结5
- wine install
- JSF参数传递方式说明
- 创建Connection对象并连接数据库
- Ubuntu 下构建基于 mysql 管理的 pure-ftpd
- 如何解决MFCO42D.dll 0xC0000005:Access Violation问题
- visitor访问者模式及dom4j中使用(二)
- strcpy
- ADODB连接数据库,通过msado15组件实现,VC2005
- Spring已经添加属性注入了,但是还是报空指针错误 说明
- oracle优化------缓存对象与数据