日期:2014-05-18  浏览次数:20717 次

关于struts的一个问题
首页是..m/login/login.jsp,用于验证用户合法性,对于合法的用户将显示..m/login/welcome.jsp,但问题是登陆后地址栏显示的地址是../m/login.do,而不是m/login/welcome.jsp,而且对../m/login.do进行刷新时,会重新执行登陆时重新的代码,而不是welcome.jsp中的代码,这是怎么回事?
login.jsp
<html:form   action= "/login "   method= "post "   onsubmit= "return   check_input(this) ">    
...
<html:form/>
struts-config.xml
          ...
                <action   path= "/login "   name= "loginForm "   scope= "request "
                                type= "framework.struts.BusinessAction "
                                validate= "true "
                                input= "/login/login.jsp "   >
                        <forward   name= "welcome "       path= "/login/welcome.jsp "/>
                </action>
          ...

------解决方案--------------------
建立一个forward action,然后在forward中设置path为这个action,并且redirect=true

<action path= "/loginWelcome "
parameter= "/login/welcome.jsp "
type= "org.apache.struts.actions.ForwardAction "/>

<action path= "/login " name= "loginForm " scope= "request "
type= "framework.struts.BusinessAction "
validate= "true "
input= "/login/login.jsp " >
<forward name= "welcome " path= "/loginWelcome.do " redirect= "true "/>
</action>

------解决方案--------------------
登陆后地址栏显示的地址是../m/login.do

这时的页面是欢迎页面吗 ? 如果是就是正常的
------解决方案--------------------
视图转发 但是地址栏并没有变化

看书不仔细 好像是孙卫琴的那本书里面讲了下这个东西 好像说这样可以隐藏实际的地址 什么更加安全之类的话

这个是正常的
------解决方案--------------------
映射
------解决方案--------------------
你用到了frame框架,这个是正常显示
------解决方案--------------------
struts是这样得吧