我有一个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>
标记中的操作将是不同的呼叫位置。
有人可以帮我这个
答案 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返回结果。