我的page.jsp里面有一些html div标签,当用户点击相应的锚标签按钮时,将div的显示切换为block或none。
假设用户单击第二个锚点按钮链接,在html表单中加载了适当的div .. 我有一个文件上传浏览按钮,使用下面的拦截器,限制上传限制maxsize和内容类型:
<interceptor-ref name="fileUpload">
<param name="maximumSize">15728640</param>
<param name="allowedTypes">application/pdf</param>
</interceptor-ref>
然后在扩展ActionSupport的java类中,如果违反maxsize和内容类型,则将返回类型作为输入。
SO在struts.xml中我定义了
<result name="input"> page.jsp </result>
但是这会导致page.jsp重新加载,而不是维护相同的html div状态,即div标签的第二种形式,再次必须单击第二个锚标签按钮,从而加载文件浏览表单。
而不是保持
<s:fielderror> </s:fielderror>
在第二个div标签的文件浏览窗口内,我可以将它保存在body标签的开头,以显示返回的错误消息。
但我希望用户输入(如“文件浏览路径”)保留在输入字段中,错误消息显示在字段上方。如果我可以说服自己在另一个jsp页面上显示错误消息,那就没那么麻烦了。但只是推测,是否有可能实现我的目标?
答案 0 :(得分: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>
从此post
如果您使用
,请替换为hasFieldErrors()