在使用struts2的时候,能简单快速地连接action和jsp页面。主要是神奇的配置文件:struts.xml 在起作用。
示例:
这是目录结构:
来一份可用的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页面了。