JBOSS升级过程中遇到的JSF的一个问题

micro2000 2010-11-22 12:38:34
在A.jsp页面中有一个按钮,用的是onclick事件,打开b.jsp页面

<h:commandButton styleClass="aaaaa" type="button" value=" 添 加 " onclick="window.location.href='b.jsf'"/>

发现,现在两个页面同时刷新,最后b.jsp没有打开,仍然是a.jsp在显示。

原先的JBOSS4.0.4 GA肯定是正常的;(JSF1.2, richfaces 3.1.2,JSF小版本不清楚)

现在的JBOSS5.1.0 GA就不行了。(JSF1.2_12, richfaces 3.3.0)

另外还有一个按钮:
<h:commandButton styleClass="aaaaa" action="#{xxxxxx.doEdit}" value=" 修 改 "/>
通过xxxxxx.doEdit方法打开修改页面,就能正常工作。

请问如何解决?
当然我可以参考修改按钮的处理方法,新建doAdd事件...;可是这样的页面有很多,让我一个一个找着去改,太麻烦了。

是不是有更简便的方法,调整配置文件就可以保证原先的代码可行。

谢谢了
...全文
117 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
micro2000 2010-11-22
  • 打赏
  • 举报
回复
楼上的,谢谢回复!

关键怎么替换,用什么版本替换,我现在的war包就没有包含jsf-api.jar、jsf-impl.jar;
\default\deploy\jbossweb.sar\jsf-libs目录下的jsf版本是1.2_12

刚刚我用老的版本的jsf(1.1_01)进行替换,发现jboss根本就起不来了。

不行的话只能去改页面程序了。
madFatso 2010-11-22
  • 打赏
  • 举报
回复
jboss-5\server\default\deploy\jbossweb.sar\jsf-libs
替换 我是这么做的
micro2000 2010-11-22
  • 打赏
  • 举报
回复
来帮帮我吧,升级一个JBOSS用了2周还没有完全搞定,着急啊!
micro2000 2010-11-22
  • 打赏
  • 举报
回复
刚刚试了一下jsf1.1替换jboss5.1.0GA中的jsf1.2_12,JBOSS起不来了,
10:11:55,171 ERROR [[/invoker]] Error configuring application listener of class
org.jboss.web.jsf.integration.config.JBossJSFConfigureListener
java.lang.NoClassDefFoundError: org/apache/commons/digester/RuleSet

肯定是类库冲突了,还是别这么尝试了,这样我又得从头开始,这两周来的努力就白费了。

各位再想想,还没有什么别的办法没有?

谢谢了!
micro2000 2010-11-22
  • 打赏
  • 举报
回复
楼上的是说用jsf1.1替换jboss中的jsf1.2_12吗?
madFatso 2010-11-22
  • 打赏
  • 举报
回复
用你工程下JSF包替换JBOSS中JAR 把工程JAR包引用指向JBOSS 试试
micro2000 2010-11-22
  • 打赏
  • 举报
回复
修正一下,原先的JSF版本是1.1_01

刚刚查了一下,第二种方法是:

在faces-config.xml中配置<navigation-rule>
<navigation-rule>
<from-view-id>/a.jsp</from-view-id>
<navigation-case>
<from-outcome>add</from-outcome>
<to-view-id>/b.jsp</to-view-id>
</navigation-case>
</navigation-rule>

然后在jsp中配置按钮的action
<h:commandButton styleClass="aaaaa" type="button" value=" 添 加 " action="add"/>

还没有试是否可行?

请各位帮帮忙!是否还有更简便的方法!
毕竟原先是好的!
谢谢了!
micro2000 2010-11-22
  • 打赏
  • 举报
回复
终于找到比较省事的改法:

<h:commandButton styleClass="aaaaa" type="button" value=" 添 加 " onclick="window.location.href='b.jsf';return false;"/>

加上return false;

我理解是,防止了a.jsp的受托管bean的执行。

暂不结贴,希望告诉给讲解讲解。
ToMakeLove 2010-11-22
  • 打赏
  • 举报
回复
看来楼主比较心急呢,没学习过,帮顶了!
micro2000 2010-11-22
  • 打赏
  • 举报
回复
我比较了两个版本生成的html页面:
同样是<h:commandButton styleClass="aaaaa" type="button" value=" 添 加 " onclick="window.location.href='b.jsf'"/>

老的版本生成的是:<input type="button" name="...

而新版本生产的是:<input type="submit" name="...

我想这也就是我遇到的问题的原因,因为是submit,所以产生了提交动作,导致a.jsp页面刷新。

问题是,如何让它生成的是button呢?

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧