2012-12-19 96 views
1

我需要在一个表单中为不同的提交按钮调用不同的动作类,并在struts2中获取下拉列表的值。struts2 - 多个提交按钮与单独的动作类

例如,用于学校的学生页面:

  1. 提交按钮1:显示页面的学术
  2. 提交按钮2:显示运动页
  3. 提交按钮3:显示库页面 等。

我试过如下,但它不起作用。

代码:

<s:submit value="academic" action="academic" /> 
<s:submit value="sports" action="sports" /> 
<s:submit value="library" action="library" /> 

Generated html code gets 
<input name="action:academic"> 
<input name="action:sports"> 

我使用theme="simple"形式标记。

我尝试了URL标记,但被调用的操作未将下拉字段值填充为学生的卷号。

的struts.xml:

`

<package name="default" extends="struts-default"> 
    <action name="academics" class="ViewAcademics" > 
     <result name="success">pages/ViewAcademics.jsp</result> 
    </action> 
    <action name="sports" class="ViewSports" > 
     <result name="success">pages/ViewSports.jsp</result> 
    </action> 
    <action name="library" class="ViewLibrary" > 
     <result name="success">pages/ViewLibrary.jsp</result> 
    </action> 
</package> 

`

JSP文件:

<s:form name="inquiryForm" method="post" theme="simple" > 
    Select roll no : 
    <s:select style="width: 200px;" 
     list="#{'1':'Student 01', '2':'Student 02', '3':'Student 03', '4':'Student 04'}" 
     id="projectName" 
     name="studentRollNo" 
     readonly="false" 
     headerKey="-1" 
     headerValue="--- Select ---" 
    /> 
    <s:submit cssClass="page" action="academics" value="academics" /> 
    <s:submit cssClass="page" name="sports" value="sports" /> 
    <s:submit cssClass="page" name="library" value="library" /> 
</s:form> 
+0

显示您的操作配置。 –

+0

在struts.xml中我已经提到了在单独的操作标记中的操作 – Kidaaaa

+0

您可以发布您的'struts.xml'文件并完成JSP表单。 –

回答

0

使用action属性,在提交的声明:

<s:submit cssClass="page" action="academics" value="academics" /> 
<s:submit cssClass="page" action="sports" value="sports" /> 
<s:submit cssClass="page" action="library" value="library" /> 

和所有的行动都应具有可变studentRollNo与getter/setter方法。

+0

我试过这个。 但生成的html就像下面的代码。 '' 流程出错。 这是需要生成的一个html吗? – Kidaaaa

+0

不要担心生成的HTML。你会得到什么错误? –