前提条件,在项目中有选择地导入以下struts2中的包.
xwork-2.0.5.jar
commons-logging-1.0.jar
commons-logging-api-1.1.jar
freemarker-2.3.8.jar
ognl-2.6.11.jar
struts2-core-2.0.11.2.jar
配置web.xml文件,代码如下:
- <?xml version="1.0" encoding="UTF-8"?>
- <web-app version="2.4"
- xmlns="http://java.sun.com/xml/ns/j2ee"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
- http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
- <welcome-file-list>
- <welcome-file>index.jsp</welcome-file>
- </welcome-file-list>
- <filter>
- <filter-name>struts2</filter-name>
- <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
- </filter>
- <filter-mapping>
- <filter-name>struts2</filter-name>
- <url-pattern>/*</url-pattern>
- </filter-mapping>
- </web-app>
登陆表单为例
第一步,在index.jsp中,加入以下代码,生成表单
- <form action="LoginAction.action" method="post">
- username:<input type="text" name="username"/>
- password:<input type="password" name="password"/>
- <input type="submit" value="提交"/>
- </form>
注意,若使用struts2表单标签,则无须加上".action"后缀.如:<s:form action="LoginAction" method="post">,为效率考虑,建议使用HTML标签.
第二步,完成LoginAction
代码如下:
- package com.dadao.struts2;
- import java.util.Map;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import javax.servlet.http.HttpSession;
- import org.apache.struts2.interceptor.ServletRequestAware;
- import org.apache.struts2.interceptor.ServletResponseAware;
- import org.apache.struts2.interceptor.SessionAware;
- import com.opensymphony.xwork2.ActionSupport;
- public class Login extends ActionSupport implements ServletRequestAware ,ServletResponseAware,SessionAware
- {
- private String message;
- private HttpSession session=null;
- private HttpServletRequest request;
- private HttpServletResponse response;
- private Map attribute;
- public void setServletRequest(HttpServletRequest req) {
- this.request=req;
- }
- public void setServletResponse(HttpServletResponse resp) {
- this.response=resp;
- }
- public void setSession(Map map) {
- this.attribute=map;
- }
- @Override
- public String execute() throws Exception {
- StringBuffer sb=new StringBuffer();
- sb.append("you user name is: ");
- sb.append(request.getParameter("username"));
- sb.append("you passwored is: ");
- sb.append(request.getParameter("password"));
- session=request.getSession();
- attribute.put("message", sb.toString());
- sb.append("session's message is: ");
- sb.append(session.getAttribute("message"));
- message=sb.toString();
- return SUCCESS;
- }
- public String getMessage() {
- return message;
- }
- public void setMessage(String message) {
- this.message = message;
- }
- }
第三步,在src目录下,新建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="strutsPackage" extends="struts-default">
- <action name="LoginAction" class="com.dadao.struts2.Login">
- <result>/message.jsp</result>
- </action>
- </package>
- </struts>
第四步,完成message.jsp.代码如下:
- <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
- <%@ taglib prefix="s" uri="/struts-tags"%>
- <%
- String path = request.getContextPath();
- String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
- %>
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
- <html>
- <head>
- <base href="<%=basePath%>">
- <title>My JSP 'HelloWorld.jsp' starting page</title>
- </head>
- <body>
- <s:property value="message"/>
- <br>
- </body>
- </html>
第五步,测试.