【发布时间】:2014-06-11 00:05:13
【问题描述】:
我在我的 JSP 页面上使用 struts-layout 来显示带有单选按钮的表格。它有一个提交按钮,用于调用 struts 动作类中的执行方法。这工作正常。
我需要在同一个表单中添加另一个提交按钮来执行另一个方法,或者以某种方式简单地意识到第二个按钮是在动作类的同一个方法中单击的。我知道这可以使用 reqCode 来完成。但我就是想不通。
我的 JSP 代码:
<layout:form action="/taskSelected.do" reqCode="execute" >
<layout:submit value="Show Task Status" styleClass="btn btn-default"/>
<layout:submit value="troubleshoot" styleClass="btn btn-default" reqCode="troubleshoot"/>
<layout:collection name="userTasks" title="" styleClass="FORM" selectProperty="uniqueID" selectType="radio">
<layout:collectionItem title="Task Name" property="name"/>
<layout:collectionItem title="UID" property="uniqueID" />
<layout:collectionItem title="Request Time" property="add_info" />
<layout:collectionItem title="FTP URL" property="ftp_url"/>
<layout:collectionItem title="Status" property="status" />
</layout:collection>
我的 struts-config.xml
<action name="taskBean" path="/taskSelected" scope="session" type="com.myapp.struts.taskSelectedAction" validate="false">
<forward name="success" path="/ShowTaskStatus.jsp"/>
<forward name="troubleshootPage" path="/ShowTroubleshoot.jsp"/>
<forward name="failure" path="/ViewTasks.jsp"/>
</action>
我的动作类第一种方法:
public ActionForward troubleshoot(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
System.out.println("Method 1= " + request.getSession().getAttribute("troubleshoot"));
if(request.getSession().getAttribute("USER_KEY")==null){
return mapping.findForward("NotLoggedIn");
}
System.out.println("Reached in Troubleshoot");
return mapping.findForward("troubleshootPage");
}
第二种方法
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
System.out.println("Method 2= " + request.getSession().getAttribute("troubleshoot"));
if(request.getSession().getAttribute("USER_KEY")==null){
return mapping.findForward("NotLoggedIn");
}
这应该很简单,但我就是不知道出了什么问题。
【问题讨论】:
标签: java jsp jakarta-ee struts