以下文件都基于JSF,Tomcat容器。
有3个JSP文件:index.jsp,calculator.jsp和result.jsp。
直接进入calculator这个页面,点击按钮,正确地进到result页面中。
但是从index页面自动跳转到calculator页面后,点击按钮无法进到result页面。
index.jsp代码只有一行: <jsp:forward page= "calculator.jsp "/> .
而如果将它改成:
<html>
<head>
<meta content= "0;URL=calculator.faces " http-equiv= "Refresh "/>
</head>
</html>
此时,自动调转到calculator页面后点按钮就可以正确进到result页面了.
原因出在哪里?
小弟发现,用jsp:forward时从index到calculator浏览器地址是不变的。
而用后者,地址是改变的。
难道问题就是因为地址没改变?faces-config.xml中的导航规则如下:
<navigation-rule>
<from-view-id> /calculator.jsp </from-view-id>
<navigation-case>
<from-outcome> success </from-outcome>
<to-view-id> /result.jsp </to-view-id>
<redirect/>
</navigation-case>
</navigation-rule>
......
先谢过各位啦
------解决方案--------------------
你用“index.jsp”跳转到calculator、访问地址是“calculator.jsp”,注意后缀是“jsp”
那么你的程序将根本不通过jsf框架来走,只是作为普通JSP页面被显示。在这个页面上点击
按钮当然没有用(根本就没有触发jsf时间).