博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Struts2入门
阅读量:6069 次
发布时间:2019-06-20

本文共 8062 字,大约阅读时间需要 26 分钟。

 

结构:

 

HelloWorldAction.java

package com.struts2.test;public class HelloWorldAction {       private String name;       public String execute() throws Exception {          return "success";       }              public String getName() {          return name;       }       public void setName(String name) {          this.name = name;       }    }
web.xml提供任何Web应用程序的入口点:
Struts 2
index.jsp
//不写,默认为index.jsp
struts2
org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter
struts2
/*

index.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%>    <%@ taglib prefix="s" uri="/struts-tags"%>
Hello World

Hello World From Struts2

helloWorld.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%>   <%@ taglib prefix="s" uri="/struts-tags"%>   
Hello World Hello World,

struts.xml:

//如果不带参数的方法不指定,则默认行为是使用execute()方法
/helloWorld.jsp
     <-- more actions can be listed here -->
<-- more packages can be listed here -->
struts.xml可以包含多个struts.xml

logging.properties:

org.apache.catalina.core.ContainerBase.[Catalina].level = INFOorg.apache.catalina.core.ContainerBase.[Catalina].handlers = \java.util.logging.ConsoleHandler

浏览器访问http://localhost:8080/Struts2/

点击say hello 跳转:

-------------------------------完毕---------------------------------------

结构:

 

accessDenied.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%>    
Access Denied

您没有权限查看此页

HelloWorldAction.java也可以extends ActionSupport

package com.struts2.test;import com.opensymphony.xwork2.ActionSupport;public class HelloWorldAction extends ActionSupport {       /**     *      */    private static final long serialVersionUID = 1L;    private String name;       public String execute() throws Exception {           if ("成功".equals(name))              {                 return SUCCESS;              }else{                 return ERROR;                }       }              public String getName() {          return name;       }       public void setName(String name) {          this.name = name;       }    }

我们可以使用字符串常量SUCCESS、ERROR

struts.xml:如果不带参数的方法不指定,则默认行为是使用execute()方法

/helloWorld.jsp
/accessDenied.jsp

 http://localhost:8080/Struts2/index.jsp

点击say hello:

点击say hello:

------------------------完毕----------------------------------------

结构:

拦截器

AbstractInterceptor类可以扩展。这提供了一个默认的无操作实现 init() 和destroy()方法。

MyInterceptor.java:

package com.struts2.test;import com.opensymphony.xwork2.ActionInvocation;import com.opensymphony.xwork2.interceptor.AbstractInterceptor;public class MyInterceptor extends AbstractInterceptor {   /**     *      */    private static final long serialVersionUID = 1L;public String intercept(ActionInvocation invocation)throws Exception{      //预处理      System.out.println("预处理");      //调用动作或下一个拦截器      String result = invocation.invoke();      //后期处理      System.out.println("后期处理");      return result;   }}

HelloWorldAction.java:

package com.struts2.test;import com.opensymphony.xwork2.ActionSupport;public class HelloWorldAction extends ActionSupport {       /**     *      */    private static final long serialVersionUID = 1L;    private String name;       public String execute() throws Exception {           System.out.println("进入HelloWorldAction....");           if ("成功".equals(name))              {                 return SUCCESS;              }else{                 return ERROR;                }       }              public String getName() {          return name;       }       public void setName(String name) {          this.name = name;       }    }

web.xml:

Struts2
index.jsp
struts2
org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter
struts2
/*

http://localhost:8080/Struts2/index.jsp

点击say hello:

控制台:

----------------------完毕-------------------------------------

 结构:

FreeMaker视图技术,用于生成输出。不依赖于使用JSP作为视图技术。

hello.fm:

hello  ${name} ! 

struts.xml:

/hello.fm

http://localhost:8080/Struts2/index.jsp

点击say hello

----------------------------------完毕-------------------------------

 

 

分发调度RequestDispatcher.forward()

struts.xml

/helloWorld.jsp

----------------------------------完毕-------------------------------

重定向 response.sendRedirect() 

struts.xml:

/accessDenied.jsp

----------------------------------完毕-------------------------------

OGNL对象图导航语言 用于引用和操作数据的值栈、数据传输和类型转换。

值栈/OGNL:

OGNL根据上下文和Struts建立一个ActionContext地图:

  1. application - 应用程序范围内的变量

  2. session - 会话范围的变量

  3. root / value stack -所有操作变量都存储在这里

  4. request - 请求范围的变量

  5. parameters - 请求参数

  6. atributes - 存储的属性页面,请求,会话和应用范围

值栈中的对象始终可用,值栈中的对象可以直接引用.

创建动作:访问值栈

HelloWorldAction.java:

package com.struts2.test;import java.util.*; import com.opensymphony.xwork2.util.ValueStack;import com.opensymphony.xwork2.ActionContext;import com.opensymphony.xwork2.ActionSupport;public class HelloWorldAction extends ActionSupport{   /**     *      */    private static final long serialVersionUID = 1L;private String name;   public String execute() throws Exception {      ValueStack stack = ActionContext.getContext().getValueStack();      Map
context = new HashMap
(); context.put("key1", new String("值1")); context.put("key2", new String("值2")); stack.push(context); System.out.println("Size of the valueStack: " + stack.size()); return "success"; }   //使用
标签访问值 public String getName() { return name; } public void setName(String name) { this.name = name; }}

index.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%>    <%@ taglib prefix="s" uri="/struts-tags"%>
Hello World

Hello World From Struts2

struts.xml:

/helloWorld.jsp

helloWorld.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><%@ taglib prefix="s" uri="/struts-tags"%>
Hello World <%-- 使用
标签访问值。值栈中的对象始终可用,值栈中的对象可以直接引用,而不是
--%> 您输入的姓名 :
key1的值 :
key2的值 :

 

http://localhost:8080/Struts2/index.jsp

点击say hello

控制台:

前台

----------------------------------完毕-------------------------------

 color.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%>   <%@ taglib prefix="s" uri="/struts-tags"%>   
Hello World 选择你喜欢的颜色:

效果:

----------------------------------完毕-------------------------------

转载于:https://www.cnblogs.com/Alwaysbecoding/p/6938166.html

你可能感兴趣的文章
Lehman Brothers NY面经
查看>>
企业高并发的成熟解决方案(一)video(笔记&知识点)
查看>>
Java代码执行顺序及多态体现
查看>>
MySQL优化心得
查看>>
虚拟键盘 input 挡住
查看>>
Mac 常用命令介绍
查看>>
无需任何软件!斐讯K2 V22.x.xx.xx版本刷机教程(2016年11月更新)
查看>>
MATLAB读写Excel文件中的数据
查看>>
65. Valid Number
查看>>
.net 后台判断是否要替换
查看>>
微软TFS漏洞能下载服务器源码,独家首发
查看>>
js页面跳转整理
查看>>
关于远程连接MySQL数据库的问题解决
查看>>
laravel之null替换空字符串中间件
查看>>
jQuery基础之一
查看>>
【SICP练习】100 练习2.76
查看>>
冲刺博客 九
查看>>
(八)javaScript对象简介
查看>>
数据库如何创建视图create view
查看>>
BNUOJ 52511 Keep In Line
查看>>