mynote 发表于 2013-2-6 08:40:47

Struts2(2):Struts2的输入检验

1:新建一个login2.jsp,使用Struts2的标签编写JSP文件
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%><%@ taglib prefix ="s" uri="/struts-tags"%><html><body>    <s:form action="login">    <s:textfield name="username" label="username"></s:textfield>    <s:password name="password" label="password"></s:password>    <s:submit></s:submit>    </s:form></body></html>2:修改了原来的execute,validate方法,
    在execute方法中加入逻辑校验,即进行密码的判断,如果用户名是hello,密码是wordl,则正确,跳转到success,否则错误,提示username or password error。
    在validate方法中加入判空校验,fieldError中如果有值,则自动跳转到struts.xml配置文件中 action中result为input对应的页面。
public String execute() throws Exception {if("hello".equals(this.getUsername().trim()) && "world".equals(this.getPassword().trim())){return SUCCESS;}else{this.addFieldError("username", "username or password error");return "failer";}}public void validate() {if (null == this.getUsername() || "".equals(this.getUsername().trim())) {//只有jsp页面使用STRUTS标签,FieldError里的值才能显示在页面上。this.addFieldError("username", "username required");}if (null == this.getPassword() || "".equals(this.getPassword().trim())) {this.addFieldError("password", "password required");}} 3,struts.xml文件如下:
<package name="struts2demo" extends="struts-default"><action name="login" class="com.test.action.LoginAction"><!--input标签表示,如果action中validate方法的FieldError中有值,就会跳转到input标签指定的JSP页面--><result name="input">/login2.jsp</result> <result name="success">/result.jsp</result><result name="failer">/login2.jsp</result></action></package> 
页: [1]
查看完整版本: Struts2(2):Struts2的输入检验