struts2 Demo

时间:2023-03-09 19:38:16
struts2 Demo

参考资料 :
http://www.cnblogs.com/yangy608/archive/2010/11/08/1871962.html
http://www.yiibai.com/struts2/struts_quick_guide.html

个人理解:
首先我们要清楚struts是一种MVC框架、
strut1和struts2有所区别。最明显的应该是Struts2把Struts1的actionForm和action的结合使用,并且优化了execute方法,通过String就可以实现跳转文件。

struts.xml
该配置文件的作用:配置action。
    action配置:
        name   action名    
        class  类路径
        result:action result 页面跳转配置
        
(个人理解:这里比struts1有所简化,省去了form的配置以及action和form 的关联配置.)

以下为struts2的Demo工程源码:

1.建立web工程,引入struts2包

2.建立package:action包

  2.1在action下建立LoginAction.java

package action;

import com.opensymphony.xwork2.ActionSupport;

public class LoginAction extends ActionSupport {

    /**
*
*/
private static final long serialVersionUID = 1L; /*
* (non-Javadoc)
*
* @see com.opensymphony.xwork2.ActionSupport#execute()
*/
@Override
public String execute() throws Exception {
// TODO Auto-generated method stub
System.out.println("LoginAction.execute()");
System.out.println("name = " + name);
if (name.equals("xiaoming")) {
return "success";
} else {
return "error";
}
} private String name; /**
* @return the name
*/
public String getName() {
return name;
} /**
* @param name
* the name to set
*/
public void setName(String name) {
this.name = name;
} }

3.配置文件

  3.1在scr文件夹下建立struts.xml

(这里的package 的extends一直显示undefined,故引入struts-default.xml文件,result文件也要记得配置好)

<之前一直报错:警告: Could not find action or result
No result defined for action action.LoginAction and result error

解决办法是在package加上 namespace="/"

>

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN"
"http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<include file="struts-default.xml"></include>
<package name="struts2" namespace="/" extends="struts-default">
<action name="login" class="action.LoginAction">
<result name="success">/WEB-INF/wel.jsp</result>
<result name="error">/WEB-INF/error.jsp</result></action>
</package>
</struts>

  3.2web.xml:

(注意 filter-class文件,应该是说struts2.1版本以上的使用如下文件,struts2.0的是另一个文件)

<?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">
<display-name></display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping></web-app>

4.编写jsp页面:

  4.1 编写input-source 页面index.jsp

<form action="login.action">
name:<input type="text" name="name"> <input type="submit"
value="submit">
</form>

  4.2 编写forward页面 error.jsp 和 wel.jsp

<body>
This is wel JSP page. <br>
hello <%=request.getParameter("name") %>
</body>