首页 > 代码库 > struts配置通配符*来匹配方法,实现动态调用

struts配置通配符*来匹配方法,实现动态调用

01:web.xml中配置,启动struts2

<?xml version="1.0" encoding="UTF-8"?><web-app version="2.4"     xmlns="http://java.sun.com/xml/ns/j2ee"     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"     xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee     http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">        <!-- 01:启动struts2框架 -->    <filter>        <filter-name>struts2</filter-name>        <filter-class>            org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter        </filter-class>    </filter>    <filter-mapping>        <filter-name>struts2</filter-name>        <url-pattern>/*</url-pattern>    </filter-mapping>      <welcome-file-list>    <welcome-file>index.jsp</welcome-file>  </welcome-file-list></web-app>

 

02:编写action类

package com.self.action;/** * 02:写相应的处理方法 */public class HelloWorldAction {        private String message;    public String helloworld_1(){        this.message="helloworld_1";        return "helloworld_1";    }    public String helloworld_2(){        this.message="helloworld_2";        return "helloworld_2";    }        //为属性注入值,需要提供set方法    public void setMessage(String message) {        this.message = message;    }    //在页面显示值,需要get方法    public String getMessage() {        return message;    }}

 

03:配置struts.xml

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"    "http://struts.apache.org/dtds/struts-2.0.dtd"><struts>	<!-- 01:将.action访问,改为.do和.action -->	<constant name="struts.action.extension" value="http://www.mamicode.com/do,action" />	<!-- 02:指定默认编码,相当于HttpServletRequest的setCharacterEncoding方法,也作用于freemarker、velocity的输出 -->	<constant name="struts.i18n.encoding" value="http://www.mamicode.com/UTF-8" />		<include file="department.xml"/></struts>

  

04:编写引入的department.xml

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"    "http://struts.apache.org/dtds/struts-2.0.dtd"><struts>	<package name="dep" namespace="/department" extends="struts-default">		<!-- 用通配符*来指代方法名,{1}代表第一个通配符所代表的字段:这里代表方法 -->		<action name="helloworld_*" class="com.self.action.HelloWorldAction" method="{1}" >			<result name="helloworld_1">				/helloworld_1.jsp			</result>			<result name="helloworld_2">				/helloworld_2.jsp			</result>		</action>	</package></struts>

  

05:编写界面1

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><html><head><title>显示</title></head><!-- 第4步:显示 --><body>	<BR>	<BR>	<center>		将页面放在WEB-INF下面,这样用户直接访问不到<BR> <BR> 为action的属性注入值: ${message}		<BR>	</center></body></html>

  

06:编写界面2

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><html><head><title>显示</title></head><!-- 第4步:显示 --><body>	<BR>	<BR>	<center>		将页面放在WEB-INF下面,这样用户直接访问不到<BR> <BR> 为action的属性注入值: ${message}		<BR>	</center></body></html>

  

07:访问路径1、2

http://localhost:8080/Struts2_01/department/helloworld_helloworld_1.action

http://localhost:8080/Struts2_01/department/helloworld_helloworld_2.action

 

struts配置通配符*来匹配方法,实现动态调用