我有一个JSP页面,用于上传文件。此页面必须在我的应用程序中的许多不同位置使用,但每次我使用此页面时,表单的操作类都是不同的。
我正在使用 Struts 2 和 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>
标签中的操作将是不同的调用位置。
您需要在网址中给出操作名称,如下所示
<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" >
试试这个
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 返回结果的每个操作的操作名称。