Struts简单实例

包含内容:

 

使用正则表达式进行表单验证

消息文件绑定

错误消息显示

 

web.xml

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE web-app PUBLIC '-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN' 'http://java.sun.com/dtd/web-app_2_3.dtd'>

<web-app>
    <servlet>
        <servlet-name>action</servlet-name>
        <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
        <init-param>
            <param-name>config</param-name>
            <param-value>/WEB-INF/struts-config.xml</param-value>
        </init-param>
        <load-on-startup>2</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>action</servlet-name>
        <url-pattern>*.do</url-pattern>
    </servlet-mapping>
    <taglib>
        <taglib-uri>/web-inf/struts-bean.tld</taglib-uri>
        <taglib-location>/web-inf/struts-bean.tld</taglib-location>
    </taglib>
    <taglib>
        <taglib-uri>/web-inf/struts-html.tld</taglib-uri>
        <taglib-location>/web-inf/struts-html.tld</taglib-location>
    </taglib>
    <taglib>
        <taglib-uri>/web-inf/struts-logic.tld</taglib-uri>
        <taglib-location>/web-inf/struts-logic.tld</taglib-location>
    </taglib>
</web-app>

 

struts-config.xml

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE struts-config PUBLIC '-//Apache Software Foundation//DTD Struts Configuration 1.1//EN' 'http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd'>

<struts-config>
    <form-beans>
       
<form-bean name="helloBean" type="test.HelloBean" />
    </form-beans>
    <action-mappings>
       
<action path="/HelloAction" type="test.HelloAction" name="helloBean" scope="request" validate="true" input="/error.jsp">
            <forward name="sayHello" path="/hello.jsp" />
        </action>
    </action-mappings>
    <message-resources parameter="test.application"/>
//消息文件绑定
</struts-config>

 

 

HelloBean.java

package test;

import org.apache.struts.action.*;
import org.apache.struts.util.*;
import javax.servlet.http.*;
import java.util.regex.*;

public class HelloBean extends ActionForm {
    private String word;
    public void setWord(String word) {
        this.word = word;  
    }  
    public String getWord() {
        return this.word;  
    }
    public void reset(ActionMapping mapping, HttpServletRequest request) {
        this.word = null;  
    }
    private boolean match(String str) {
       
Pattern p = Pattern.compile("[^0-9]+");//使用正则表达式进行表单验证
        Matcher m = p.matcher(str);
        return m.matches();

    }  
    public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) {
        ActionErrors errors = new ActionErrors();
        if (word == null || !match(word)) {
            errors.add("word", new ActionMessage("error.key"));  
        }
        return errors;
    }
}

 

 

HelloAction.java

package test;

import org.apache.struts.action.*;
import javax.servlet.http.*;
import javax.servlet.*;
import org.apache.struts.util.*;

public class HelloAction extends Action{
    public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception {
       
MessageResources mess = getResources(request);
        String wordKey = mess.getMessage("word.key");
        String helloKey = mess.getMessage("hello.key");
        System.out.println(wordKey + "," + helloKey);
        String word = request.getParameter(wordKey);
        System.out.println(word);
        HelloBean myForm = (HelloBean) form;
        myForm.setWord(word);
        myForm.setWord(helloKey + ", " + myForm.getWord());
        return mapping.findForward("sayHello");
    }  
}

 

 

hello.jsp

<%@ page contentType="text/html;charset=GBK" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
<html:html locale="true">
    <head>
        <html:base/>
    </head>
    <body>
        <logic:present name="helloBean" scope="request">
            <bean:message key="aaaa.key" />
        </logic:present>
        <logic:notPresent name="helloBean" scope="request">
            <bean:message key="bbbb.key" />
        </logic:notPresent>
        <br>
        <bean:write name="helloBean" property="word" />
    </body>
</html:html>

 

 

error.jsp

<%@ page contentType="text/html;charset=GBK" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<html:errors/> //错误消息显示

 

/WEB-INF/classes/test/application.properties

word.key=word
hello.key=hello
aaaa.key=this bean is present.
bbbb.key=this bean isn't present.
error.key=raise a error, please check!

 

结果:

 

http://localhost:2000/test3/HelloAction.do?word=bitan

 

this bean is present.
hello, bitan

 

http://localhost:2000/test3/HelloAction.do?word=b123n

 

raise a error, please check!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值