JSF手记(一)

1.h:commandLink不确定失效问题

关建字: JSF,h:commandLink,调用bean方法失效(点击多次才有一次生效).

问题描述:为了判断通过URL带不同的参数来进入bean的不同方法,在jsp页面通过的URL参数的判断,来激活不同的 h:commandLink,从而进入不同的bean方法。但在实际操作中,通过JS激活不同h:commandLink时,要点击多次才有一次进入bean方法。

解决:在网上找了一天,终于找到一个建议,尝试后解决了问题。方法为,

"一般不是程序的问题
把你的web.xml中涉及javax.faces.STATE_SAVING_METHOD的设置改为client就可以了
<context-param>
<param-name>javax.faces.STATE_SAVING_METHOD </param-name>
<param-value>client </param-value>
</context-param>

"

但具体什么原理,还在学习中......

URL: http://topic.youkuaiyun.com/u/20071021/13/498066d9-c4d3-4a65-8dd8-cb88964aed82.html

其它有关此问题的有意义URL: http://ltian.javaeye.com/blog/102843

2. javax.faces.STATE_SAVING_METHOD

接上面的第1个问题,研究javax.faces.STATE_SAVING_METHOD.

网搜到的关键点:1)javax.faces.STATE_SAVING_METHOD 设置为 server 的时候(默认),发现点击浏览器 后退 按钮会导致退回的页面不可用,重新提交的表单不生效,服务器端不刷新,但页面会跳转,必须刷新一次才能解决。

2)要在 Tomcat5 下运行 JSF ,为了稳定起见,应该使用 JSF1.1 版本。现在用回JSF1.1,原来一些XML没有验证,和页面提交表单后,返回再提交会出现的丢失数据的问题也解决了.

3)

In JSF, the state of the application is saved on the server by default. To improve
performance, you can save application state on the client instead. This saves the state of the application into
a hidden field on the page that you can see if you view the page source at run time.
详见URL: http://www.blogjava.net/itvincent/archive/2006/11/01/78481.html
而后找到的更好解释: http://www.jroller.com/mert/entry/state_saving_method_client_side
3.h:commandLink不确定失效问题最终解决。
果然是具体问题具体解决,虽然根据上面的改成client方法解决了问题,但由于怕影响到其它同事的程序,所以不能更改。最后还是研究了自已的jsp好久,想到网上找到的资料里有提到提交form问题,而我在我的程序中使用几个form,每个form里有个h:commandLink,所以考虑把它们放在一个form(整个页面只有一个<f:view>和一个<f:form>),问题居然也解决了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值