JSF传参

JSF 每个页面都是提交给自己的,在页面上次显示到 IE 之前,页面的状态已经保存下来了,提交时把上次状态恢复,再用表单来填充值,再调用 action 处理,跳转到其他页是
FacesContext facesContext=FacesContext.getCurrentInstance();
1 : 设置当前视图为新页面, facesContext.getCurrentInstance().getViewRoot().setViewId("/login.jsp");,设置后再调用 facesContext.renderResponse 直接返回.
2 :如果你的 action 处理后再跳转的话就没有必要这样的了,只要在 faces-config.xml 中配置 outcome (也就是 from-outcome 值) ,然后就在你的 action 中 return ${outcome} , 或者 <h:commandButton action = "outcomeId" />

如果要用重定向而不是 forward, 只要在 outcome 另个子标签 <redirect id="随便写个ID,只要有就行,现在根本不用" />
b: 怎么访问其他 ManagedBean, 下面是例子。
Xiaoyi bean = (Xiaoyi)facesContext.getApplication().createValueBainding("#{xiaoyi}").getValue(facesContext);

requestScope =   (Map) facesContext
     .getApplication()
     .createValueBinding("#{requestScope}")
     .getValue(facesContext);
   sessionScope =    (Map) facesContext
     .getApplication()
     .createValueBinding("#{sessionScope}")
     .getValue(facesContext);
   applicationScope =    (Map) facesContext
     .getApplication()
     .createValueBinding("#{applicationScope}")
     .getValue(facesContext);
   requestParam =    (Map) facesContext
     .getApplication()
     .createValueBinding("#{param}")
     .getValue(facesContext);

c: 按钮传参数:
<h:commandButton ...> <f:param name='categoryId' value="#{categoryBean.categoryId}" /></h:commandButton>

JSF 在页面显示时会为这个 button 生成 类似这样的 js 代码: thisButton.οnclick=" thisButton.form['categoryId'].value = '02343';thisButton.form.submit();"  

自然也就传了参数.
required="true"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值