对struts.xml这个配置文件的详细说明
<struts>
<package name="hello" namespace="/test" extends="struts-default">
<action name="sayHello" class="com.yxb.struts.HelloWorld" method="execu">
<result name="success">/WEB-INF/page/index.jsp</result>
</action>
</package>
</struts>
1、package: 在实际应用中,我们应该把一组业务功能相关的Action放在同一个包下和java中的类包是类似的,相同的业务用包划分在一起。
2、name="hello" 该name 属性值可以任意取名,但必须唯一。
3、namespace="/test" 默认的命名空间为空字符串,要是加上访问的时候修改一下路径为:/test/sayHello.action。
4、extends="struts-default" 通常每个包都应该继承struts-default包,因为Struts2很多核心的功能都是拦截器来实现。如:从请求中把请求参数封装到action、文件上传和数据验证等等都是通过拦截器实现的。 struts-default定义了这些拦截器和Result类型。因此,当包继承了struts-default才能使用struts2提供的核心功能。
5、<action name="sayHello" class="com.yxb.struts.HelloWorld" method="execu"> 其中name属性为访问时路径的一部分(多数与form表单对应),class为类的路径,最后就是一个method属性,表示应该被调用的方法(只要与action中的方法对应就可以了)。
6、<result name="success">/WEB-INF/page/index.jsp</result> name="success" 中的success对应方法返回的参数,而/WEB-INF/page/index.jsp是要访问的视图.
7、接下来就是Action和 JSP的代码片断:
public class HelloWorld {
private String message;
public String getMessage() {
return message;
}
public String execu(){
message ="Hello World! 北京时间:";
return "success";
}
}
jSP页面的<body>里面的内容:
${message}<%=new java.util.Date() %>
为什么我的jsp页面message的值拿不到那?
写完以后,部署成功后,在浏览器中输入相应的URL(如.../test/sayHello.action)就会显示出消息和时间。