编写一个简单的struts2小案例
1、编写好struts.xml里面的内容
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"
"http://struts.apache.org/dtds/struts-2.1.7.dtd">
<struts>
<!--
package:包(与Java中包的作用差不多)
name:包的名称(这里的name必须有,因为在对应的struts-2.1.7.dtd中,指明:name CDATA #REQUIRED,并且在该包中唯一)
namespace:包的名称空间(访问时通过这个名字)
extends:继承的父包(这里的struts-default存在于strtus.core.jar中的struts-default.xml,里面存储了许多结果集还有拦截器 )
abstract:当包中没有任何的action时,abstract为true
-->
<package name="ansel" namespace="/test" extends="struts-default">
<!--
action:表示要执行的动作
name:表示要执行的动作名称
class:表示要执行的动作所对应的javaBean的对象
method:表示上面对象所对应的方法
-->
<action name="saysay" class="cn.ansel.domain.sayHi" method="say">
<!--
result:运行结果
name:上面method运行返回的字符串
type:默认是dispatchar
-->
<result name="success">/1.jsp</result>
</action>
</package>
</struts>
2、根据struts.xml中的内容,创建所需的javaBean及method
package cn.ansel.domain;
import java.io.Serializable;
public class sayHi implements Serializable {
//这里定义message的目的是为了在转发页面中显示数据,比较明显的知道运行结果
private String message;
public String say(){
message="hello,struts2!";
return "success";
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
3、定义好视图层的输出信息:
这里我们使用Jsp做视图层
${message}
4、开启tomcat,并访问相应地址
http://localhost:8080/struts2Day01/test/saysay
访问的路径为:应用名+package的namespace+action的name
在默认的情况下,可以在action的name后面加上.action(在default.properties中配置)
tips:在访问时,action有它自己的搜索顺序,意思就是:即使你输入的地址不存在或者不正确,只要动作名称正确,那么最终都能访问到。
比如说:http://localhost:8080/struts2Day01/test/a/b/c/d/e/f/saysay
首先寻找名字为:/test/a/b/c/d/e/f的包,看看有没有saysay这个action
如果没有的话,查找/test/a/b/c/d,/test/a/b/c,以此类推
以上,欢迎纠错!