我在遗留项目中使用struts 1。我想验证表格。关于那个,我读了很好的article。但是我不明白如果form的validate方法返回非空的ActionErrors,struts会做什么。我已经指定了validate="true"
和input="somepage.jsp"
,但如果我的表单验证没有通过,我会得到一个空白页面。正如我所说,它必须保持在输入中指定的页面?我是对的吗?
修改
<action path="/struts/BlaBlaAction"
type="com.example.BlaBlaAction"
name="BlaBlaForm"
validate="true"
scope="request"
input="/struts/blablainput.jsp">
<forward name="someaction" path="/struts/AnotherAction.do"/>
<forward name="error" path="/error.html" redirect="true"/>
</action>
文件夹struts位于我的应用程序的根目录
答案 0 :(得分:2)
您还需要使用<html:errors/>
标记在somepage.jsp
如果表单的validate方法返回非空的ActionErrors,Struts会重定向到您定义为输入的JSP。然后,如果输入JSP中有<html:errors>
,则会迭代并显示所有ActionErrors。
答案 1 :(得分:1)
您可能已经忘记了struts XML 配置中的“失败”。看看这个例子:
<action path="/LogonSubmit" type="app.jcj.LogonAction" name="logonForm"
scope="request" validate="true" input="/pages/Logon.jsp">
<forward name="success" path="/pages/Welcome.jsp"/>
<forward name="failure" path="/pages/Logon.jsp"/>
</action>