首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

新手请教JSF极其严重的有关问题,

2011-12-03 
求助:新手请教JSF极其严重的问题,急!!在一个主页面中用了frameset,分为左右两个frame。两个frame中有各自单

求助:新手请教JSF极其严重的问题,急!!
在一个主页面中用了frameset,分为左右两个frame。
两个frame中有各自单独的操作,对应各自的backing   bean.
这两个操作部分代码的分别如下:
左边:
<h:commandLink   action= "#{tBacker.selectNode} ">
<f:param   name= "nodid "   value= "#{tBacker.index} "> </f:param>
</h:commandLink>
右边:
<h:commandButton   id= "ima2 "   onclick= "return   checkForm(this.form) "   onmouseover= "this.src= './image/cx_4_1.gif ' "   onmouseout= "this.src= './image/cx_4.gif ' "   style= "cursor:hand "   image= "./image/cx_4.gif "   action= "#{rowDataQuery.dataQueryByButton} "/>
绑定bean如下:
<managed-bean>
<managed-bean-name> tBacker </managed-bean-name>
<managed-bean-class>
com..TBacker
</managed-bean-class>
<managed-bean-scope> session </managed-bean-scope>
</managed-bean>
<managed-bean>
<managed-bean-name> rowDataQuery </managed-bean-name>
<managed-bean-class> com.RowDataQuery </managed-bean-class>
<managed-bean-scope> request </managed-bean-scope>
</managed-bean>

问题如下:
  当两边的操作相互进行时,第一次点击commandLink   或commandButton   时,只是页面刷新一下,而不调用这个action方法,我在两个action中打断点,根本没有进入,用h:messages也没有任何错误信息,第二次再点击就能执行方法了。
  现在这种情况没有一个固定的规律,能不能调用这个action方法都要靠“碰运气”,把commandLink   换成valuechangelistener,一边或两边都加上immediate= "true "都会有这样的情况出现。
  谁能告诉我这是什么原因?我应该怎么解决这个问题?
  这个问题要是不能解决就要放弃使用JSF了,各位高手来帮帮忙吧!解决后马上给分!

[解决办法]
没用过jsf帮顶
[解决办法]
帮你up
[解决办法]
up
[解决办法]
这是由于你所调用的方法总是在构造函数之后执行的结果,如果你将对象的范围都设在session中就不会出现这个问题了,否则还要在构造函数中加一些判断
[解决办法]
这个说不准哪里有问题。好好检查一下
1。左边:
<h:commandLink action= "#{tBacker.selectNode} ">
<f:param name= "nodid " value= "#{tBacker.index} "> </f:param>
</h:commandLink>
//getIndex和setIndex都写上没有

2。 onclick= "return checkForm(this.form) "检查下这个onclick有没问题,或者去掉它测试一下action行不行。
3。检查下web.xml的jsf配置允许了js之类的没
[解决办法]
selectNode方法是怎麽寫的?
加event參數了沒有??
[解决办法]
h:commandLink
h:commandButton 最好不要出现在一个网页里,要么统一一下都h:commandButton
[解决办法]
h:commandLink 是依靠js的
[解决办法]
帮你顶一下。
[解决办法]
帮你顶一下
[解决办法]
tBacker.selectNode 和 rowDataQuery.dataQueryByButton

方法有问题 你看下这两个方法是否存在错误

仔细检查下



[解决办法]
刚开始使用基本都会碰到这个问提,一般出现这个问题原因是两个
1.状态记录参数应该设置为客户端记录,不能设置为服务器,否则会经常不触发事件;
2.如果使用 <h:commandLink> ,就不能同时使用其action和value属性,否则会出现触发异常,如果想使用action最好用 <h:commandButton>
------解决方案--------------------


web.xml
<!--JSF的基础配置 -->
<listener>
<listener-class> com.sun.faces.config.ConfigureListener </listener-class>
</listener>
<context-param>
<param-name> javax.faces.STATE_SAVING_METHOD </param-name>
<param-value> client </param-value>
</context-param>

[解决办法]
你不理解jsp运行机制,他们有个优先级别,bean 的get方法优先级别最高,当那些方法运行完毕后,才是你的commandLink 和commandButton 上的actionListener帮定的方法,有可能你在第一不就取不到值,所以的你事件就不执行,或偶尔执行(获取到程序运行的条件值)

热点排行