0

我已经使用 affuse 框架创建了动作类和 jsp。但是问题是当我在 jsp 中按下添加按钮时使用重定向示例时 fReleaseList.jsp 重定向到动作类是 FReleaseAction.java 并初始化实例变量“fRelease”并重定向到 fReleaseForm.jsp 并且当按下保存按钮时它再次重定向到相同的动作类 FReleaseAction.java 并且“fRelease”变量将为空。配置文件如下,

/WEB-INF/pages/fReleaseList.jsp

    <action name="editFRelease" class="com.vxl.appanalytix.webapp.action.FReleaseAction" method="edit">
        <result>/WEB-INF/pages/fReleaseForm.jsp</result>
        <result name="error">/WEB-INF/pages/fReleaseList.jsp</result>
    </action>

    <action name="saveFRelease" class="com.vxl.appanalytix.webapp.action.FReleaseAction" method="save">
        <result name="input">WEB-INF/pages/fReleaseForm.jsp</result>
        <result name="cancel" type="redirectAction">fReleases</result>
        <result name="delete" type="redirectAction">fReleases</result>
        <result name="success" type="redirectAction">fReleases</result>
    </action>
    <!--FReleaseAction-END-->
4

1 回答 1

1

是的。除非您在表单中使用该变量,否则 Struts 不会将值发回。为了将值发回,您需要在 jsp 页面中设置 HiddenVariable

简单来说,如果你有这样的文本框,当生成 JSP 页面时,struts 会生成一个隐藏变量,当你提交表单时,隐藏变量数据将被转换并存储/映射到 Bean 数据。

如果在 jsp 页面中没有使用 Bean 变量,Struts 不会为此生成隐藏变量类型,因此当它进入 Action 类时,它会创建新的 bean,并且不会设置旧的 bean 数据。

于 2013-07-19T07:27:54.897 回答