虽然struts的表单验证,挺傻的,但是我们还是讲一讲
- 在ProductAction中增加validate()方法
在这个例子里,如果输入的name是空的,就会提示name can't be empty
注意: ProductAction类要继承 ActionSupport
package com.how2java.action; import com.how2java.bean.Product; import com.opensymphony.xwork2.ActionSupport; public class ProductAction extends ActionSupport{ private Product product; public String show(){ product = new Product(); product.setName("iphone7"); return "show"; } public String add(){ return "show"; } public void validate(){ if ( product.getName().length() == 0 ){ addFieldError( "product.name", "name can't be empty" ); } } public Product getProduct() { return product; } public void setProduct(Product product) { this.product = product; } }
- 增加一个input 的result
这个配置的作用是如果validate校验没有通过,那么需要通过Input跳转到输入界面
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <package name="basicstruts" extends="struts-default"> <action name="showProduct" class="com.how2java.action.ProductAction" method="show"> <result name="show">show.jsp</result> </action> <action name="addProduct" class="com.how2java.action.ProductAction" method="add"> <result name="input">addProduct.jsp</result> <result name="show">show.jsp</result> </action> </package> </struts>
- 错误提示信息显示成红色
为了让错误提示信息显示成红色,增加struts的head标签
<%@ taglib prefix="s" uri="/struts-tags" %> <html> <s:head/> <body> <s:form action="addProduct"> <s:textfield name="product.name" label="product name" /> <s:submit value="Submit" /> </s:form> </body> </html>
- 测试
重启tomcat,访问
http://127.0.0.1:8080/struts/addProduct.jsp
并且不输入信息提交