1.目标在基于Struts2的应用中,利用AJAX方式提交表单实现一个登陆验证Action,将服务器端验证结果展现在页面上字段错误展示:
action 错误提示
2.技术实现 利用struts2-jquery插件和struts2-json插件实现
3.实现步骤 3.1依赖jar包
除了struts2-core-2.2.3.jar包以外,还要下载两个jar包 struts2-jquery-plugin-3.1.0.jar struts2-json-plugin-2.2.3.jar 3.2编写登陆处理类Action 这个Action和我们普通的Action没有任何区别
[java] - package com.crazycoder2010.struts2;
-
- import com.opensymphony.xwork2.ActionSupport;
-
- public class LoginAction extends ActionSupport {
- private static final long serialVersionUID = 6627313805146336838L;
- private String name;
- private String password;
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public String getPassword() {
- return password;
- }
- public void setPassword(String password) {
- this.password = password;
- }
- @Override
- public String execute() throws Exception {
- if(!("Kevin".equals(this.name)&&"111111".equals(this.password))){
- this.addActionError("Wrong!");
- }
- return INPUT;
- }
- }
3.3为登陆程序添加验证文件LoginAction-Validation.xml(和LoginAction放置在同一个目录下)
[html] - <?xml version="1.0" encoding="UTF-8" ?>
- <!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
- <validators>
- <field name="name">
- <field-validator type="requiredstring">
- <param name="trim">true</param>
- <message>Name is required.</message>
- </field-validator>
- <field-validator type="stringlength">
- <param name="minLength">2</param>
- <param name="maxLength">60</param>
- <message>Name must be between ${minLength} and ${maxLength} characters long.</message>
- </field-validator>
- </field>
- <field name="password">
- <field-validator type="requiredstring">
- <param name="trim">true</param>
- <message>Password is required.</message>
- </field-validator>
- <field-validator type="stringlength">
- <param name="minLength">2</param>
- <param name="maxLength">60</param>
- <message>Password must be between ${minLength} and ${maxLength} characters long.</message>
- </field-validator>
- </field>
- </validators>