1、导入struts2需要的9个包到lib文件夹中

 

2、配置web.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
    xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
    http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  
  <filter>
      <filter-name>struts</filter-name>
      <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
  </filter>
  
  <filter-mapping>
      <filter-name>struts</filter-name>
      <url-pattern>/*</url-pattern>
  </filter-mapping>
  
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>

如上面所示:配置了StrutsPrepareAndExecuteFilter,StrutsPrepareAndExecuteFilter就会自动加载struts2框架。配置好了filter后,还需要配置filter拦截的URL。一般让拦截用户所有请求。配置filter还可以是org.apache.struts2.dispatcher.FilterDispatcher,但是该filter已近过时了,所有还是用StrutsPrepareAndExecuteFilter

 

3、Action控制器

在src/action文件夹下面创建一个ShowWords类

 1 package action;
 2 
 3 public class ShowWords {
 4 
 5     private String name;
 6     private String words;
 7     public String getName() {
 8         return name;
 9     }
10     public void setName(String name) {
11         this.name = name;
12     }
13     public String getWords() {
14         return words;
15     }
16     public void setWords(String words) {
17         this.words = words;
18     }
19     
20     public String execute(){
21         if(name.equals("")){
22             return "input";
23         }else{
24             words="欢迎您:"+name;
25             return "success";
26         }
27     }
28 }

如上ShowWords类,添加了name和words属性,并在action中执行默认方法execute,判断如果字符串为空,则返回逻辑视图input,否则返回success逻辑视图

 

4、配置struts.xml

在src下面新建一个struts.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
    "http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
    <constant name="struts.i18n.encoding" value="UTF-8"></constant>
    <constant name="struts.action.extension" value="action,do,"></constant>
    <package extends="struts-default" name="default" namespace="/">
        <action name="showWords" class="action.ShowWords">
            <result>/Hello.jsp</result>
            <result name="input">/index.jsp</result>
        </action>
    </package>
</struts>

其中dtd名称空间可以拷贝struts2-core-2.3.28.1.jar包下面struts-default.xml下面的DOCTYPE

constant:用于配置struts默认配置,例如struts.i18n.encoding,用于设置字符编码;struts.action.extension:用于设置url的扩展名,这里设置可以不需要扩展名,也可以用action或do作为扩展名

struts框架默认属性保存在struts2-core-2.3.28.1.jar/org.apache.struts2/default.properties中

extends="struts-default":表示该配置继承自srtuts-default,而struts-default配置在struts-default.xml文件中

<action name="showWords" class="action.ShowWords">

name:url访问路径   class:action类

在action标签中还有一个method属性,该属性用来指定需要执行action类中的什么方法,如果不指定,默认方法execute方法

<result>/Hello.jsp</result>
<result name="input">/index.jsp</result>

根据action类返回结果,来控制视图

name属性即为action的返回值,如果不设置name默认为success,而result中文本表示需要执行的视图jsp的地址

 

 posted on 2016-06-13 10:29  Just_Do  阅读(411)  评论(0编辑  收藏  举报