Structs2下的MyFirstTest
2015-03-22 17:54
387 查看
1.这是《Struts2-权威指南》第二章的例子
2.博文主要说明在eclipse下如何创建一个struts2项目
3.实现功能:在login.jsp输入用户名和密码,若用户名为scott且密码为tiger则进入welcome.jsp,否则进入error.jsp
一、新建项目
File/New/Other/Web/Dynamic Web Project/Next/Project name:MyFirstTest/
Next/Next/勾选Generate web.xml descriptor/Finish
此时会看到web.xml在WEB-INF目录下
二、配置web.xml
打开web.xml,修改为:
<?xml version="1.0" encoding="GBK"?>
<web-app 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_3_0.xsd" version="3.0">
<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>/*</url-pattern>
</filter-mapping>
</web-app>
二、下载和安装struts2框架
http://struts.apache.org/download.cgi,下载Full Distribution下的struts-2.3.20-all.zip(版本会更新,名字会不同)
解压struts-2.3.20-all.zip,得到struts-2.3.20文件夹,
再解压app子目录下的struts2-blank.war,
把struts2-blank文件夹下的\WEB-INF\lib目录下的所有.jar文件复制到自己项目的\WEB-INF\lib目录下,
在eclipse中Refresh一下,会在Java Resources\Libraries\Web App Libraries下看到所复制的.jar
三、配置struts.xml
在src文件夹下新建XML file,设置名字struts.xml。打开这个struts.xml,切换到Source,把内容改为:
<?xml version="1.0" encoding="GBK" ?>
<!-- 指定Struts 2配置文件的DTD信息 -->
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<!-- struts是Struts 2配置文件的根元素 -->
<struts>
<!-- Struts 2的Action必须放在指定的包空间下定义 -->
</struts>
四、代码实现
在WebContent下新建login.jsp、welcome.jsp、error.jsp
1.login.jsp:
<%@ page language="java" contentType="text/html; charset=GBK"%>
<%@taglib prefix="s" uri="/struts-tags"%>
<html>
<head>
<title><s:text name="登录页面"/></title>
</head>
<body>
<s:form action="Login">
<s:textfield name="username" label="用户名" />
<s:textfield name="password" label="密码" />
<s:submit value="登录"/>
</s:form>
</body>
</html>
2.welcome.jsp:
<%@ page language="java" contentType="text/html; charset=GBK" %>
<html>
<head>
<title>成功页面</title>
</head>
<body>
${sessionScope.user},登陆成功!
</body>
</html>
3.error.jsp:
<%@ page language="java" contentType="text/html; charset=GBK" %>
<html>
<head>
<title>失败页面</title>
</head>
<body>
登陆失败!
</body>
</html>
在src下新建lee包,新建接口Action.java、类LoginAction.java
1.Action.java:
package lee;
public interface Action {
public static final String SUCCESS="success";
public static final String ERROR="error";
public String execute() throws Exception;
}
2.LoginAction.java:
package lee;
import com.opensymphony.xwork2.ActionContext;
public class LoginAction implements Action {
private String username;
private 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 (getUsername().equals("scott") && getPassword().equals("tiger") ) {
ActionContext.getContext().getSession().put("user" , getUsername());
return SUCCESS;
} else {
return ERROR;
}
}
}
五、修改struts.xml
<?xml version="1.0" encoding="GBK" ?>
<!-- 指定Struts 2配置文件的DTD信息 -->
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<!-- struts是Struts 2配置文件的根元素 -->
<struts>
<!-- Struts 2的Action必须放在指定的包空间下定义 -->
<package name="myFirstTest" extends="struts-default">
<action name="Login" class="lee.LoginAction">
<result name="success">/welcome.jsp</result>
<result name="error">/error.jsp</result>
</action>
</package>
</struts>
说明:
1.package name可以随意设置
2.login.jsp里的action="Login"对应struts.xml中的action name="Login",相关的class是"lee.LoginAction",
即lee包下的LoginAction.class
3.LoginAction执行自身的execute(),若返回"success"则请求被转发到/welcome.jsp,
若返回"error"则请求被转发到/error.jsp
2.博文主要说明在eclipse下如何创建一个struts2项目
3.实现功能:在login.jsp输入用户名和密码,若用户名为scott且密码为tiger则进入welcome.jsp,否则进入error.jsp
一、新建项目
File/New/Other/Web/Dynamic Web Project/Next/Project name:MyFirstTest/
Next/Next/勾选Generate web.xml descriptor/Finish
此时会看到web.xml在WEB-INF目录下
二、配置web.xml
打开web.xml,修改为:
<?xml version="1.0" encoding="GBK"?>
<web-app 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_3_0.xsd" version="3.0">
<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>/*</url-pattern>
</filter-mapping>
</web-app>
二、下载和安装struts2框架
http://struts.apache.org/download.cgi,下载Full Distribution下的struts-2.3.20-all.zip(版本会更新,名字会不同)
解压struts-2.3.20-all.zip,得到struts-2.3.20文件夹,
再解压app子目录下的struts2-blank.war,
把struts2-blank文件夹下的\WEB-INF\lib目录下的所有.jar文件复制到自己项目的\WEB-INF\lib目录下,
在eclipse中Refresh一下,会在Java Resources\Libraries\Web App Libraries下看到所复制的.jar
三、配置struts.xml
在src文件夹下新建XML file,设置名字struts.xml。打开这个struts.xml,切换到Source,把内容改为:
<?xml version="1.0" encoding="GBK" ?>
<!-- 指定Struts 2配置文件的DTD信息 -->
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<!-- struts是Struts 2配置文件的根元素 -->
<struts>
<!-- Struts 2的Action必须放在指定的包空间下定义 -->
</struts>
四、代码实现
在WebContent下新建login.jsp、welcome.jsp、error.jsp
1.login.jsp:
<%@ page language="java" contentType="text/html; charset=GBK"%>
<%@taglib prefix="s" uri="/struts-tags"%>
<html>
<head>
<title><s:text name="登录页面"/></title>
</head>
<body>
<s:form action="Login">
<s:textfield name="username" label="用户名" />
<s:textfield name="password" label="密码" />
<s:submit value="登录"/>
</s:form>
</body>
</html>
2.welcome.jsp:
<%@ page language="java" contentType="text/html; charset=GBK" %>
<html>
<head>
<title>成功页面</title>
</head>
<body>
${sessionScope.user},登陆成功!
</body>
</html>
3.error.jsp:
<%@ page language="java" contentType="text/html; charset=GBK" %>
<html>
<head>
<title>失败页面</title>
</head>
<body>
登陆失败!
</body>
</html>
在src下新建lee包,新建接口Action.java、类LoginAction.java
1.Action.java:
package lee;
public interface Action {
public static final String SUCCESS="success";
public static final String ERROR="error";
public String execute() throws Exception;
}
2.LoginAction.java:
package lee;
import com.opensymphony.xwork2.ActionContext;
public class LoginAction implements Action {
private String username;
private 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 (getUsername().equals("scott") && getPassword().equals("tiger") ) {
ActionContext.getContext().getSession().put("user" , getUsername());
return SUCCESS;
} else {
return ERROR;
}
}
}
五、修改struts.xml
<?xml version="1.0" encoding="GBK" ?>
<!-- 指定Struts 2配置文件的DTD信息 -->
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<!-- struts是Struts 2配置文件的根元素 -->
<struts>
<!-- Struts 2的Action必须放在指定的包空间下定义 -->
<package name="myFirstTest" extends="struts-default">
<action name="Login" class="lee.LoginAction">
<result name="success">/welcome.jsp</result>
<result name="error">/error.jsp</result>
</action>
</package>
</struts>
说明:
1.package name可以随意设置
2.login.jsp里的action="Login"对应struts.xml中的action name="Login",相关的class是"lee.LoginAction",
即lee包下的LoginAction.class
3.LoginAction执行自身的execute(),若返回"success"则请求被转发到/welcome.jsp,
若返回"error"则请求被转发到/error.jsp
相关文章推荐
- My First robt TestCase
- My First Test of Php Linking to MySql
- test my first article
- my first android test
- test for my first artical by client software
- my first android test
- 写一个程序,用于分析一个字符串中各个单词出现的频率,并将单词和它出现的频率输出显示。(单词之间用空格隔开,如“Hello World My First Unit Test”);
- 写一个程序,用于分析一个字符串中各个单词出现的频率,并将单词和它出现的频率输出显示。(单词之间用空格隔开,如“Hello World My First Unit Test”);
- My first testcase about C#&C++
- IT'S MY FIRST BLOG JUST TO DO TEST! HaHa
- my first android test
- 写一个程序,用于分析一个字符串中各个单词出现的频率,并将单词和它出现的频率输出显示。(单词之间用空格隔开,如“Hello World My First Unit Test”)
- my first android test
- just a test for my bolg first file
- my first android test
- (1)写一个程序,用于分析一个字符串中各个单词出现的频率,并将单词和它出现的频率输出显示。(单词之间用空格隔开,如“Hello World My First Unit Test”); (2)编写单元测试进行测试; (3)用ElcEmma查看代码覆盖率,要求覆盖率达到100%。
- my first android test
- 写一个程序,用于分析一个字符串中各个单词出现的频率,并将单词和它出现的频率输出显示。(单词之间用空格隔开,如“Hello World My First Unit Test”)
- my first android test
- My first test entry with CSDN