单个Jsp具有不同的Action类

时间:2014-04-28 08:58:25

标签: java jsp struts2

我有一个jsp页面,用于上传文件。这个jsp页面必须在我的应用程序中的许多不同位置使用,但每次我使用这个jsp页面时,我的表单的动作类都是不同的。我正在使用struts2和hibernate。任何人都可以建议如何实现这一点。         下面给出的是我的jsp代码。

  <table width="100%" cellspacing="0" border="0" cellpadding="0">

<tr>
    <td colspan="3" align="left"><s:url
        action="" id="idfileValidate" escapeAmp="false"></s:url> <input
        type="button" class="btn"/></td>
</tr>

...............

<tr>
    <td colspan="3" align="left"><input type="button" class="btn"/><s:url
        action="" id="idfileUpload" escapeAmp="false"></s:url> <input
        type="button" class="btn" id="buttonUpload"/>
    </td>
</tr>
 </table>

<s:url>标记中的操作将是不同的呼叫位置。

有人可以帮我这个

2 个答案:

答案 0 :(得分:1)

您需要在网址中提供操作名称,如下所示

 <table width="100%" cellspacing="0" border="0" cellpadding="0">

<tr>
    <td colspan="3" align="left"><s:url
        action="fileValidate" id="idfileValidate" escapeAmp="false"></s:url> <input
        type="button" class="btn"/></td>
</tr>

...............

<tr>
    <td colspan="3" align="left"><input type="button" class="btn"/><s:url
        action="fileUpload" id="idfileUpload" escapeAmp="false"></s:url> <input
        type="button" class="btn" id="buttonUpload"/>
    </td>
</tr>
 </table>

您需要在struts.xml中映射该操作,如下所示

<action name="fileValidate" 
            class="com.action.struts2.validatefileaction" >

<action name="fileupload" 
            class="com.action.struts2.fileupload" >

试试这个

答案 1 :(得分:0)

唯一的操作名称在JSP中是可变的。在每个操作类或基类中创建一个字段

String actionName;
//getter and setter

然后在JSP

中使用它
<tr>
    <td colspan="3" align="left"><s:url
        action="%{actionName}" id="id%{actionName}" escapeAmp="false"></s:url> <input
        type="button" class="btn"/></td>
</tr>

它将动态地替换每个动作的动作名称,并使用此JSP返回结果。