日期:2014-05-17  浏览次数:20669 次

struts1转发和重定向的问题
刚学struts
A页面:
Java code

<html:form action="/userLogin" focus="userName">
<html:text property="userName" size="16" />
<html:submit property="login" value="Submit" />
</html:form>



UserLoginAction:
Java code

userName=userLoginForm.getUserName();
request.setAttribute("userName", userName);
return mapping.findForward("success");



struts-config.xml:
Java code

<action-mappings >
    <action
      attribute="userLoginForm"
      input="/form/userLogin.jsp"
      name="userLoginForm"
      path="/userLogin"
      scope="request"
      type="com.yourcompany.struts.action.UserLoginAction">
      <forward name="fault" path="/form/userLogin.jsp" redirect="false" />
      <forward name="success" path="/form/success.jsp" redirect="false" />
    </action>
</action-mappings>



B页面:
Java code

[<bean:write name="userName" scope="request" />]



就是标红的地方,如果我不写request.setAttribute("userName", userName);为什么B页面就获得不到userName呢?我也查了redirect="false"是转发。以前不用struts,我request.getRequestDispatcher("/form/success.jsp").forward(request,response);这样写就可以不用setAttribute,B页面就可以获得A页请求里的数据。这是怎么回事呢?如果A是一个注册页面,里面有几十个参数,我还非要每个都setAttribute一下?

------解决方案--------------------
setAttribute 是必要的呀
------解决方案--------------------
setAttribute 是必要的呀