首先建立一个web的工程:
导入struts2所需要的jar包,名字如下:
asm-3.3.jar
asm-commons-3.3.jar
asm-tree-3.3.jar
commons-fileupload-1.3.jar
commons-io-2.0.1.jar
commons-lang3-3.1.jar
commons-logging-1.1.3.jar
freemarker-2.3.19.jar
javassist-3.11.0.GA.jar
log4j-1.2.17.jar
ognl-3.0.6.jar
struts2-core-2.3.15.jar
xwork-core-2.3.15.jar
没办法把包传上去,上网搜索一下。
在web.xml里加入struts2的过滤器,代码如下:
<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>
在src下建立一个action,代码如下:
public class UserAction extends ActionSupport{ public String execute(){ HttpServletRequest request=ServletActionContext.getRequest(); String username=request.getParameter("username"); String password=request.getParameter("password"); request.setAttribute("username",username); request.setAttribute("password",password); return "success"; } }
需要继承ActionSupport。
在src下建立一个struts.xml的配置文件,配置代码如下
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <package name="User" extends="struts-default" namespace="/User"> <action name="UserAction" class="action.UserAction"> <result name="success">/success.jsp</result> </action> </package> </struts>
配置中package的name自定义,extends的内容是定死的,namespace也是自定义的。
action的name自定义的,class是类的位置,前面是包名点(.)类名。
result的name就是UserAction的return返回的内容,后面就是要跳转到的jsp,不要忘记前面加左斜杠。
在index.jsp中的代码如下:
<body> <form action="<%=path%>/User/UserAction.action" method="post"> <table> <tr> <td>账号:</td><td><input type="text" name="username" /> </td> </tr> <tr> <td>密码:</td><td><input type="password" name="password" /></td> </tr> <tr> <td><input type="submit" value="登陆" /></td><td><input type="reset" value="重置" /></td> </tr> </table> </form> </body>
form中action中的User是配置中action的namespace中的内容,UserAction是配置中action中的name中的内容,后面是点(.)包名。
WebRoot下建立success.jsp名字跟struts.xml中result中的jsp名字要一致,代码如下:
<body> 登陆成功 <br/> <% String username=(String)request.getAttribute("username"); String password=(String)request.getAttribute("password"); %> 账号:<%=username%> <br/> 密码:<%=password%> </body>
用tomcat部署,运行就可以在网页上显示出你输入的账户名和密码。
地址栏输入的是:http://localhost:8080/工程名,然后回车。
struts2主要是为了简化servlet的代码。