Struts2 入门
实现 的具体步骤:
1.加载类库
2.配置web.xml
3.开发视图层页面
4.开发控制层Action
5.配置struts.xml文件
6.部署运行项目
1.
- <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <parent>
- <artifactId>Y2_SSH</artifactId>
- <groupId>cn.happy</groupId>
- <version>1.0-SNAPSHOT</version>
- </parent>
- <modelVersion>4.0.0</modelVersion>
- <artifactId>Struts2Base</artifactId>
- <packaging>war</packaging>
- <name>Struts2Base Maven Webapp</name>
- <url>http://maven.apache.org</url>
- <dependencies>
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>3.8.1</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.struts</groupId>
- <artifactId>struts2-core</artifactId>
- <version>2.3.4.1</version>
- </dependency>
- <dependency>
- <groupId>org.apache.struts.xwork</groupId>
- <artifactId>xwork-core</artifactId>
- <version>2.3.4.1</version>
- </dependency>
- <!--EL表达式-->
- <!-- https://mvnrepository.com/artifact/org.apache.taglibs/taglibs-standard-spec -->
- <dependency>
- <groupId>org.apache.taglibs</groupId>
- <artifactId>taglibs-standard-spec</artifactId>
- <version>1.2.1</version>
- </dependency>
- <!-- https://mvnrepository.com/artifact/org.apache.taglibs/taglibs-standard-impl -->
- <dependency>
- <groupId>org.apache.taglibs</groupId>
- <artifactId>taglibs-standard-impl</artifactId>
- <version>1.2.1</version>
- </dependency>
- <!-- https://mvnrepository.com/artifact/javax.servlet.jsp.jstl/jstl-api -->
- <dependency>
- <groupId>javax.servlet.jsp.jstl</groupId>
- <artifactId>jstl-api</artifactId>
- <version>1.2</version>
- </dependency>
- <dependency>
- <groupId>javaee</groupId>
- <artifactId>javaee-api</artifactId>
- <version>5</version>
- </dependency>
- </dependencies>
- <build>
- <resources>
- <resource>
- <directory>src/main/java</directory>
- <includes>
- <include>**/*.*</include>
- </includes>
- </resource>
- </resources>
- </build>
- </project>
2.
- <?xml version="1.0" encoding="UTF-8"?>
- <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" 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>
- <context-param>
- <param-name>contextConfigLocation</param-name>
- <param-value>classpath:struts.xml</param-value>
- </context-param>
- <listener>
- <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
- </listener>
- <welcome-file-list>
- <welcome-file>helloworld.jsp</welcome-file>
- </welcome-file-list>
- </web-app>
3.
- <%@ taglib prefix="s" uri="/struts-tags" %>
- <%--
- Created by IntelliJ IDEA.
- User: linlin
- Date: 2017/10/22
- Time: 9:22
- To change this template use File | Settings | File Templates.
- --%>
- <%@ page contentType="text/html;charset=UTF-8" language="java" %>
- <html>
- <head>
- <title>登录</title>
- </head>
- <body>
- <s:form action="UserAction" method="post">
- <s:textfield name="name" ></s:textfield>
- <s:textfield name="pwd" ></s:textfield>
- <s:submit value="提交"/>
- </s:form>
- </body>
- </html>
- <%--
- Created by IntelliJ IDEA.
- User: linlin
- Date: 2017/10/22
- Time: 9:22
- To change this template use File | Settings | File Templates.
- --%>
- <%@ page contentType="text/html;charset=UTF-8" language="java" %>
- <html>
- <head>
- <title>Success</title>
- </head>
- <body>
- <h1>登录成功!!!</h1>
- </body>
- </html>
4.控制层
- package cn.happy.struts02;
- import com.opensymphony.xwork2.Action;
- /**
- * Created by linlin on 2017/10/22.
- */
- public class UserAction implements Action {
- private String name;
- private String pwd;
- public String execute() throws Exception {
- if(name.equals("admin")&&pwd.equals("1")){
- return SUCCESS;
- }
- return ERROR;
- }
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public String getPwd() {
- return pwd;
- }
- public void setPwd(String pwd) {
- this.pwd = pwd;
- }
- }
5.action
- <?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" namespace="/" extends="struts-default">
- <action name="he" class="cn.happy.struts01.HelloWorld">
- <result name="helloworld">/helloworld.jsp</result>
- </action>
- <action name="UserAction" class="cn.happy.struts02.UserAction">
- <result name="success">/success.jsp</result>
- <result name="error">/index.jsp</result>
- </action>
- </package>
- </struts>
然后进行部署项目 tomcat 然后 启动
在 浏览器 输入 login页面 进行一系列 表单提交 等 。。。
2.自动装配:
web.xml一样的
struts.xml 没变
类有2个:
- package cn.happy.struts02;
- /**
- * Created by linlin on 2017/10/22.
- */
- public class UserInfo {
- private String name;
- private String pwd;
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public String getPwd() {
- return pwd;
- }
- public void setPwd(String pwd) {
- this.pwd = pwd;
- }
- }
- package cn.happy.struts02;
- import com.opensymphony.xwork2.Action;
- import com.opensymphony.xwork2.ModelDriven;
- /**
- * Created by linlin on 2017/10/22.
- */
- public class UserAction implements Action,ModelDriven<UserInfo> {
- private UserInfo user=new UserInfo();
- public String execute() throws Exception {
- if(user.getName().equals("admin")&&user.getPwd().equals("1")){
- return SUCCESS;
- }
- return INPUT;
- }
- public UserInfo getUser() {
- return user;
- }
- public void setUser(UserInfo user) {
- this.user = user;
- }
- public UserInfo getModel() {
- return user;
- }
- }
页面
- <%@ taglib prefix="s" uri="/struts-tags" %>
- <%--
- Created by IntelliJ IDEA.
- User: linlin
- Date: 2017/10/22
- Time: 9:22
- To change this template use File | Settings | File Templates.
- --%>
- <%@ page contentType="text/html;charset=UTF-8" language="java" %>
- <html>
- <head>
- <title>登录</title>
- </head>
- <body>
- <s:form action="UserAction" method="post">
- <s:textfield name="user.name" ></s:textfield>
- <s:textfield name="user.pwd" ></s:textfield>
- <s:submit value="提交"/>
- </s:form>
- </body>
- </html>
- package cn.happy.Struts03;
- import com.opensymphony.xwork2.Action;
- import com.opensymphony.xwork2.ActionContext;
- import com.opensymphony.xwork2.util.ValueStack;
- import org.apache.struts2.ServletActionContext;
- import org.apache.struts2.interceptor.ServletRequestAware;
- import org.apache.struts2.util.ServletContextAware;
- import javax.servlet.ServletContext;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpSession;
- import java.util.Map;
- /**
- * Created by linlin on 2017/10/22.
- */
- public class LoginAction implements Action ,ServletRequestAware,ServletContextAware{
- private HttpServletRequest request;
- private ServletContext servletContext;
- public String execute() throws Exception {
- System.out.println("==============");
- // HttpSession session=request.getSession();
- // HttpSession session = ServletActionContext.getRequest().getSession();
- // session.setAttribute("username","张三");
- ActionContext context = ActionContext.getContext();
- Map<String, Object> map = context.getSession();
- map.put("uname","hhh99");
- //
- /* HttpServletRequest request = ServletActionContext.getRequest();
- ValueStack vs= (ValueStack)request.getAttribute("struts.valueStack");
- vs.push(map);*/
- //放入值栈
- /* ValueStack valueStack = ActionContext.getContext().getValueStack();
- valueStack.push(map);*/
- //servlet Context
- ServletContext servletContext = ServletActionContext.getServletContext();
- // session.setAttribute("unsame","admin");
- servletContext.setAttribute("userna","Servlet Context 00000000");
- return SUCCESS;
- }
- public void setServletRequest(HttpServletRequest httpServletRequest) {
- this.request=httpServletRequest;
- }
- public HttpServletRequest getRequest() {
- return request;
- }
- public void setRequest(HttpServletRequest request) {
- this.request = request;
- }
- public void setServletContext(ServletContext servletContext111) {
- this.servletContext = servletContext111;
- }
- }
页面:
- <%@ taglib prefix="s" uri="/struts-tags" %>
- <%--
- Created by IntelliJ IDEA.
- User: linlin
- Date: 2017/10/22
- Time: 9:22
- To change this template use File | Settings | File Templates.
- --%>
- <%@ page contentType="text/html;charset=UTF-8" language="java" %>
- <html>
- <head>
- <title>Success</title>
- </head>
- <body>
- <h1>登录</h1>
- <h1><s:property value="#session.username"></s:property> </h1>
- <h1><s:property value="#session.uname"></s:property> </h1>
- <h1><s:property value="uname"></s:property> </h1>
- <h1><s:property value="#session.userna"></s:property> </h1>
- </body>
- </html>