0

我的 page.jsp 里面有一些 html div 标签,当用户点击相应的锚标签按钮时,将 div 的显示切换为阻止或无。

假设用户单击第二个锚按钮链接,加载了 html 表单的适当 div。我有一个文件上传浏览按钮,使用下面的拦截器,限制上传限制 maxsize 和内容类型:

<interceptor-ref name="fileUpload">
<param name="maximumSize">15728640</param>
<param name="allowedTypes">application/pdf</param>
</interceptor-ref>  

然后在扩展 ActionSupport 的 java 类中,如果违反 maxsize 和内容类型,则获取返回类型作为输入。

所以在 struts.xml 我定义

   <result name="input">  page.jsp </result>

但这会导致 page.jsp 重新加载,而不是保持相同的 html div 状态,即 div 标签的第 2 种形式,必须再次单击第 2 个锚标签按钮,从而加载文件浏览表单。

而不是保持

<s:fielderror> </s:fielderror> 

在第二个 div 标签的文件浏览表单中,我可以将其保留在 body 标签的开头以显示返回的错误消息。

但是我希望像“文件浏览路径”这样的用户输入留在输入字段中,并且错误消息显示在字段上方。如果我能说服自己在另一个jsp页面上显示错误信息,就不会那么麻烦了。但只是推测,是否有可能实现我想要的?

4

1 回答 1

0
<s:if test="hasActionErrors()">
        <s:actionerror/>
</s:if>

您可以将此代码放在要显示错误的任何位置此外,如果您想显示相应的 div,其中包含要在页面加载时显示的表单,您可以在 javascript 代码中使用相同的策略

<script>
 <s:if test="hasActionErrors()">
         document.getElementById("div2").display="block";//or trigger click on the corresponding link
 </s:if>
</script>

从这个帖子

hasFieldErrors()如果您正在使用它,请替换为

于 2012-07-26T11:52:47.717 回答