lookupdispatchAction和validation框架
来源:互联网 发布:地震讯息 软件 编辑:程序博客网 时间:2024/05/22 06:13
LookUpDispatchAction的使用:
1. 创建 JSP 代码如下:
<%@ page language="java" pageEncoding="GBK"%>
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>
<%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles" %>
<html>
<head>
<title>MultiSubmit.jsp</title>
</head>
<body>
<form action="./multiSubmit.do" method="post">
第一个数:<input type="text" name="number1"/><br>
第二个数:<input type="text" name="number2"/><br>
<input type="submit" name="action" value="加">
<input type="submit" name="action" value="减">
<input type="submit" name="action" value="乘">
<input type="submit" name="action" value="除">
</form>
</body>
</html>
2. 创建ActionForm 代码如下:
package com.yourcompany.struts.form;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
public class MultiSubmitForm extends ActionForm {
private int number2;
private int number1;
private String action;
public ActionErrors validate(ActionMapping mapping,
HttpServletRequest request) {
// TODO Auto-generated method stub
return null;
}
public void reset(ActionMapping mapping, HttpServletRequest request) {
// TODO Auto-generated method stub
}
public int getNumber2() {
return number2;
}
public void setNumber2(int number2) {
this.number2 = number2;
}
public int getNumber1() {
return number1;
}
public void setNumber1(int number1) {
this.number1 = number1;
}
public String getAction() {
return action;
}
public void setAction(String action) {
this.action = action;
}
}
3.创建Action ,相应的代码如下:
package com.yourcompany.struts.action;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.LookupDispatchAction;
import com.yourcompany.struts.form.MultiSubmitForm;
public class MultiSubmitAction extends LookupDispatchAction {
public ActionForward doAdd(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
MultiSubmitForm multiSubmitForm = (MultiSubmitForm) form; System.out.println("doAdd method in .........");
System.out.println("--- number1 = " + multiSubmitForm.getNumber1());
System.out.println("--- number2 = " + multiSubmitForm.getNumber2());
return null;
}
public ActionForward doSubtract(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
MultiSubmitForm multiSubmitForm = (MultiSubmitForm) form; System.out.println("doSubtract method in .........");
System.out.println("--- number1 = " + multiSubmitForm.getNumber1());
System.out.println("--- number2 = " + multiSubmitForm.getNumber2());
return null;
}
public ActionForward doMultifly(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
MultiSubmitForm multiSubmitForm = (MultiSubmitForm) form; System.out.println("doMultifly method in .........");
System.out.println("--- number1 = " + multiSubmitForm.getNumber1());
System.out.println("--- number2 = " + multiSubmitForm.getNumber2());
return null;
}
public ActionForward doDivide(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
MultiSubmitForm multiSubmitForm = (MultiSubmitForm) form;
System.out.println("doDivide method in .........");
System.out.println("--- number1 = " + multiSubmitForm.getNumber1());
System.out.println("--- number2 = " + multiSubmitForm.getNumber2());
return null;
}
@Override
protected Map getKeyMethodMap() {
// TODO Auto-generated method stub
Map map = new HashMap();
map.put("button.add", "doAdd");
map.put("button.subtract", "doSubtract");
map.put("button.multiply", "doMultifly");
map.put("nutton.divide", "doDivide");
return map;
}
}
4. 在applicationResource.properties 资源文件中加入以下代码:
button.add=/u52a0 # 对应的中文字为: 加
button.subtract=/u51cf # 对应的中文字为: 减
button.multiply=/u4e58 # 对应的中文字为: 乘
nutton.divide=/u9664 # 对应的中文字为: 除
5. 在struts-config.xml中修改相应的action 节点
<action
attribute="multiSubmitForm"
input="/multiSubmit.jsp"
name="multiSubmitForm"
path="/multiSubmit"
parameter="action"
scope="request"
type="com.yourcompany.struts.action.MultiSubmitAction">
</action>
6. 为了支持按钮上的中文,添加过滤器,代码如下:
package com.filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
public class FilterServlet implements Filter {
public void destroy() {
// Put your code here
}
public void init() throws ServletException {
// Put your code here
}
public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain filter) throws IOException, ServletException {
// TODO Auto-generated method stub
arg0.setCharacterEncoding("GBK");
arg1.setCharacterEncoding("GBK");
filter.doFilter(arg0, arg1);
}
public void init(FilterConfig arg0) throws ServletException {
// TODO Auto-generated method stub
}
}
7. 以上过滤器需要在web.xml中描述,在web.xml中添加以下代码:
<filter>
<filter-name>filterServlet</filter-name>
<filter-class>com.filter.FilterServlet</filter-class>
</filter>
<filter-mapping>
<filter-name>filterServlet</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
在Struts 中如何使用validation 框架验证:
1.创建JSP 文件,代码如下:
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<html:javascript formName="usersForm"/>
<html>
<head>
<title>My JSP 'users.jsp' starting page</title>
</head>
<body>
<html:form action="/users.do" method="post" onsubmit="return validateUsersForm(this)">
名称:<input type="text" name="name"/> <br>
年龄:<input type="text" name="age"/><br>
Email:<input type="text" name="email"/><br>
电话:<input type="text" name="phone"/><br>
生日:<input type="text" name="birthDay"/><br>
<input type="submit" value="提交"/>
</html:form>
</body>
</html>
2.创建ActionForm 代码如下:
package com.yourcompany.struts.form;
import java.sql.Date;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
public class UsersForm extends ActionForm {
private String phone;
private int age;
private String email;
private String name;
private String birthDay;
public ActionErrors validate(ActionMapping mapping,
HttpServletRequest request) {
// TODO Auto-generated method stub
return null;
}
public void reset(ActionMapping mapping, HttpServletRequest request) {
// TODO Auto-generated method stub
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getBirthDay() {
return birthDay;
}
public void setBirthDay(String birthDay) {
this.birthDay = birthDay;
}
}
3. 创建Action 代码如下:
package com.yourcompany.struts.action;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import com.yourcompany.struts.form.UsersForm;
public class UsersAction extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
UsersForm usersForm = (UsersForm) form;// TODO Auto-generated method stub
return null;
}
}
为了加入验证框架需要在struts-config.xml 中加入以下代码:
<message-resources parameter="com.yourcompany.struts.ApplicationResources" />
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml" />
</plug-in>
4. 在WEB-INF目录下增加 validation.xml 代码如下:
<!DOCTYPE form-validation PUBLIC
"-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.1.3//EN"
"http://jakarta.apache.org/commons/dtds/validator_1_1_3.dtd">
<form-validation>
<formset>
<form name="usersForm">
<!-- 验证年龄是必须的,并且只能输入 a-z 之间任意字符 -->
<field property="name" depends="required,mask">
<arg0 key="message.name" />
<arg0 key="message.name" name="mask" resource="true"/>
<var>
<var-name>mask</var-name>
<!-- 验证用户名只能输入 a-z 之间任意字符 -->
<var-value>^[A-Za-z]*$</var-value>
</var>
</field>
<!-- 验证年龄是必须的,并且只能是10到100之间的数字 -->
<field property="age" depends="required,intRange">
<arg0 key="message.age"/>
<arg1 name="intRange" key="${var:min}" resource="false"/><!-- 定义最小范围 -->
<arg2 name="intRange" key="${var:max}" resource="false"/><!-- 定义最大范围 -->
<var>
<var-name>min</var-name>
<var-value>10</var-value>
</var>
<var>
<var-name>max</var-name>
<var-value>100</var-value>
</var>
</field>
<!-- 验证电话号码是必须的,前8位必须是数字 -->
<field property="phone" depends="required,mask">
<arg0 key="message.phone"/>
<arg0 name="mask" key="message.phone" resource="true"/>
<var>
<var-name>mask</var-name>
<var-value>^/d{8}</var-value>
</var>
</field>
<!-- 验证EMAIL是必须的,并且只能是合法的EMAIL 格式 -->
<field property="email" depends="required,email">
<arg0 key="message.email"/>
</field>
<!-- 验证时间是必须的,并且只能是yyyy/MM/dd 格式 -->
<field property="birthDay" depends="required,date">
<arg0 key="message.birthDay"/>
<arg0 name="date" key="message.birthDay" resource="true"/>
<var>
<var-name>datePattern</var-name>
<var-value>yyyy/MM/dd</var-value>
</var>
</field>
</form>
</formset>
</form-validation>
5. 在applicationResource.properties 文件中加入以下代码:
message.name=name
message.age=age
message.email=email
message.birthDay=birthDay
message.phone=phone
errors.required={0} is required.
errors.minlength={0} can not be less than {1} characters.
errors.maxlength={0} can not be greater than {1} characters.
errors.invalid={0} is invalid.
errors.byte={0} must be a byte.
errors.short={0} must be a short.
errors.integer={0} must be an integer.
errors.long={0} must be a long.
errors.float={0} must be a float.
errors.double={0} must be a double.
errors.date={0} is not a date.
errors.range={0} is not in the range {1} through {2}.
errors.creditcard={0} is an invalid credit card number.
errors.email={0} is an invalid e-mail address.
- lookupdispatchAction和validation框架
- LookupDispatchAction
- LookupdispatchAction
- Struts中的DispatchAction和LookupDispatchAction
- 实例讲解DispatchAction和LookupDispatchAction
- struts2中validation校验框架的原理和使用
- struts2中validation校验框架的原理和使用
- Struts Validation框架浅尝
- Struts2中Validation框架
- Validation框架验证数据
- Struts Validation框架浅尝
- Struts2中Validation框架
- struts2的validation框架
- Struts2 Validation框架
- struts验证Validation框架
- Struts Validation框架浅尝1
- Struts Validation框架浅尝2
- Struts Validation框架浅尝2
- 计算字符串在画布内的高度和宽度
- 微软的招聘要求
- DataList控件之手工分页
- Java读写Properties文件
- 辩证人性
- lookupdispatchAction和validation框架
- [转]C++到底还能做什么?
- Servlet技术简介与编写、编译Servlet程序
- 网游Server端开发基础
- 引用与指针的比较
- 网络接口层-路由的处理
- C++重要知识点
- 查找目录下的 xml 后缀的文件(例子)
- 给我新人生的skycc营销软件