struts.xml文件中主要配置元素的使用



struts.xml文件中主要配置元素的使用

struts.xml文件的配置:
<?xml version=”1.0″ encoding=”UTF-8″?>
<!DOCTYPE struts PUBLIC
“-//Apache Software Foundation//DTD Struts Configuration 2.0//EN”
“http://struts.apache.org/dtds/struts-2.0.dtd”>
<struts>
<package name=”default” extends=”struts-default”>
<action name=”login” class=”action.LoginAction”>
<result name=”success”>/success.jsp</result>
<result name=”error”>/error.jsp</result>
</action>
</package>
</struts>
1. package配置元素:用于将一组相关的action,result和拦截器等设置成一个逻辑单元,从而简化维护工作,提高重用性。
package元素通过一个必须的name属性作为它的标识,在package元素中extends属性允许继承另外一个package定义的配置;namespace指定名称空间
2. action配置元素:Action类是Struts 2的核心控制器,通常开发中的Action类需要继承框架提供的com.opensymphony.xwork2.Action类,并重写该类的execute()方法
package action;
import com.opensymphony.xwork2.*;
public class LoginAction implements Action {
public String username;
public String password;

public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}

public String execute() throws Exception {
if(“admin”.equals(username)&&”123″.equals(password)) {
return “success”;
}
return “error”;
}
}
开发好的Action类,需要在struts.xml文件中通过Action元素配置。struts.xml文件中的每一个Action元素就是一个Action映射,框架通过配置好的Action映射来确定如何处理请求。
例如:
<action name=”login” class=”action.LoginAction”>
<result name=”success”>/success.jsp</result>
<result name=”error”>/error.jsp</result>
</action>
Action的class属性是Action实现类的完整类名。name属性是必须的,用于匹配请求的URL。
3. result配置元素:result元素代表一个可能的输出。当Action类的方法完成时,将返回一个字符串类型的结果码,框架就根据这个结果码选择对应的result元素,向用户输出。
例如:<result name=”success”>/success.jsp</result>
上面的例子说明,如果Action的方法返回的是“success”字符串,则为用户提供一个success.jsp的视图。
type属性来制定起结果视图的类型。
web.xml文件的配置:
<?xml version=”1.0″ encoding=”UTF-8″?>
<web-app version=”2.5″
xmlns=”http://java.sun.com/xml/ns/javaee”
xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”
xsi:schemaLocation=”http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd”>

<!– 配置Struts 2框架的核心Filter –>
<filter>
<!– 配置Struts 2框架的核心Filter的名字 –>
<filter-name>struts</filter-name>
<!–配置Struts 2框架的核心Filter的实现类 –>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>

<!– 配置Filter拦截的URL –>
<filter-mapping>
<filter-name>struts</filter-name>
<!– 配置struts2的核心 FilterDispatcher拦截所有用户请求–>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>