struts2是mvc框架中的一部份,相当于mvc中的c,控制器。它是我们做java mvc的桥梁。对struts配置文件的了解和熟知,是必要的,也是必须的。下面我将介绍有关struts2配置文件的信息。编写正确的struts.xml文件,就你玩转struts2的第一步!
1.选择struts2需要的必需jar文件。
2.新建javaweb项目。
3.加入struts.xml文件到src目录下
4.配置web.xml文件,把以下代码加入到 web.xml上:
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
5.struts.xml文件配置:
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
"http://struts.apache.org/dtds/struts-2.5.dtd">
<struts>
<!-- 开启struts2的开发模式 -->
<constant name="struts.devMode" value="true" />
<constant name="struts.enable.DynamicMethodInvocation" value="true"/>
<package name="login" extends="struts-default">
<action name="loginAction" class="com.my.action.LoginAction" method="login">
<result >/main.jsp</result>
<result name="input" type="redirect">/login.jsp </result>
</action>
</package>
</struts>
主要属性说明:
package-name:用于区别不同的package;必须是唯一的、可用的变量名;用于其它package来继承;
package–namespace:用于减少重复代码(和struts1比较);是调用action时输入路径的组成部分;
package–extends:用于继承其它package以使用里面的过滤器等东东;
action–name:用于在一个package里区别不同的action;必须是唯一的、可用的变量名;是调用action时输入路径的组成部分;
action–class:action所在的路径(包名+类名);
action–method:action所调用的方法名;引用块内容
特别注意。在写result视图的时候,有这样两种写法:/WEB-INF/Hello.jsp和WEB-INF/Hello.jsp
这两种的区别你知道吗?:/WEB-INF/Hello.jsp它会不计较你的namespace直接就去访问这个地方了。但是如果是:WEB-INF/Hello.jsp,而你的命名空间又是/test.这样的话,它访问的就是:/test/WEB-INF/Hello.jsp,如果说不存在test,那么直接报错。