在使用struts2的时候,能简单快速地连接action和jsp页面。主要是神奇的配置文件:struts.xml 在起作用。


示例:

    这是目录结构:

    struts2中struts.xml文件用通配符配置_struts


    来一份可用的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>
	<package name="default" namespace="/" extends="struts-default">
	       <action name="helloworld" class="com.ouc.action.HelloWorldAction">    
	        <result>/result.jsp</result>		
	      </action>
</struts>

    启动tomcat之后,在浏览器输入http://localhost:8080/HelloWorld/helloworld.action ,就会跳转到我们所写的result.jsp页面了。



1、最基本的方式是指定method的方式

<struts>
	<package name="default" namespace="/" extends="struts-default">
	       <action name="helloworld" class="com.ouc.action.HelloWorldAction">    
	        <result>/result.jsp</result>		
	       </action>
	       <action name="addAction" method="add" class="com.ouc.action.HelloWorldAction">    
	        <result>/add.jsp</result>		
	      </action>
	      <action name="updateAction" method="update" class="com.ouc.action.HelloWorldAction">    
	        <result>/update.jsp</result>		
	      </action>
	</package>
</struts>

    在浏览器输入http://localhost:8080/HelloWorld/addAction.action,找到并执行了HelloWorldAction中的add方法并返回字符串“add”之后,就会跳转到add.jsp页面。同理,改成updateAction.action会跳转到update.jsp页面。



2、跳过感叹号方式!



3、强大的通配符方式

<struts>
	<package name="default" namespace="/" extends="struts-default">
		<action name="*_*" method="{2}" class="com.ouc.action.{1}Action">
			<result name="success">/result.jsp</result>
			<result name="add">/{2}.jsp</result>
			<result name="update">/{2}.jsp</result>
		</action>
	</package>
</struts>

    其中,_是分隔符,*是通配符,比如action属性里面的第一个*就和{1}对应,即前面的HelloWorld,第二个*和{2}对应,即add或update。这样就能减少很多工作量了,写出简洁的代码。可以增加*的个数,用{n}对应。

    浏览器输入http://localhost:8080/HelloWorld/HelloWorld_add.action,就会跳转到add.jsp页面了。