一、Struts2:是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet;用于jsp页面与Java代码之间的交互。

  1、核心:Filter拦截器,对所有的请求进行拦截。

  2、工作流程:http://localhost:8080/项目名/请求 --> 被web.xml中的Struts拦截器拦截到strus.xml文件-->找到对应的action里面对应的name,也就找到了对应的类-->通过action里面的method参数找到对应的执行方法,并返回一个字符串-->找到action标签中的result标签中的name与返回值相匹配-->跳转到向应的jsp页面。

  3、配置

      1、将strus2所需的jar包添加到 项目名\WEB-INF\lib  中

      2、复制struts.xml文件到 src目录下

      3、写action代码。注意:

        a)、Struts的action方法都是待返回值的方法

        b)、 在action类中需要实现modelDriven 来自动的将页面参数注入到对象中去。因此jsp页面的标签中的name属性必须跟Java类的属性字段完全对应。

      4、在web.xml文件中编写Strus2的Filter核心拦截器

      5、在strust.xml文件中去配置package标签中的属性。

二、Struts2的简单搭建:

  1、新建一个web项目

  2、新建一个Person类     

  1. package com.st.bean;
  2.  
  3. public class Person {
  4. private int id;
  5. private String name;
  6. private int age;
  7. public int getId() {
  8. return id;
  9. }
  10. public void setId(int id) {
  11. this.id = id;
  12. }
  13. public String getName() {
  14. return name;
  15. }
  16. public void setName(String name) {
  17. this.name = name;
  18. }
  19. public int getAge() {
  20. return age;
  21. }
  22. public void setAge(int age) {
  23. this.age = age;
  24. }
  25. }

  3、将Struts2所需的jar包考到lib文件下

  4、在web.xml文件中编写struts2的核心拦截器,这里面的类容最好直接拷贝不要手敲,容易出错。

  1. <!-- ********************************** -->
  2. <filter>
  3. <filter-name>struts2</filter-name>
  4. <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
  5. </filter>
  6. <filter-mapping>
  7. <filter-name>struts2</filter-name>
  8. <url-pattern>/*</url-pattern>
  9. </filter-mapping>
  10. <!-- ********************************** -->

  5、在index.jsp编写HTML代码,注意标签的name值和Person类的字段相对应

  1. <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
  2. <%
  3. String path = request.getContextPath();
  4. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
  5. %>
  6.  
  7. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  8. <html>
  9. <head>
  10. <title>Struts2核心拦截器示例</title>
  11. </head>
  12.  
  13. <body>
  14. <form method="post" action="<%=request.getContextPath() %>/person/personAdd">
  15. <table>
  16. <tr>
  17. <td>ID:</td>
  18. <td><input type="text" name="id" value="${id}"/></td>
  19. </tr>
  20. <tr>
  21. <td>姓名:</td>
  22. <td><input type="text" name="name" value="${name}"/></td>
  23. </tr>
  24. <tr>
  25. <td>年龄:</td>
  26. <td><input type="text" name="age" value="${age}"/></td>
  27. </tr>
  28. <tr>
  29. <td><input type="submit" /></td>
  30. <td><input type="reset" /></td>
  31. </tr>
  32. </table>
  33. </form>
  34. </body>
  35. </html>

  6、拷贝一个struts.xml文件到src文件下,修改package标签中的属性值,如果action标签中不指定method属性,那么会默认的执行execute()方法。

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE struts PUBLIC
  3. "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
  4. "http://struts.apache.org/dtds/struts-2.0.dtd">
  5.  
  6. <!-- <struts>
  7. <package name="" namespace="url的中间路径" extends="struts-default">
  8. <action name="访问的路径" class="对应的action类" method="类里面对应的方法" >
  9. <result name="action方法里面返回的字符串" >对应的jsp页面的路径</result>
  10. </action>
  11. </package>
  12. </struts> -->
  13. <struts>
  14. <package name="person" namespace="/person" extends="struts-default" >
  15. <action name="personAdd" class="com.st.action.PersonAction" method="personAdd">
  16. <result name="success">/index.jsp</result>
  17. </action>
  18. </package>
  19. </struts>

  7、编写action代码:继承PersonAction得到execute()方法,实现ModelDriven接口重写getModel方法

  1. package com.st.action;
  2.  
  3. import com.opensymphony.xwork2.ActionSupport;
  4. import com.opensymphony.xwork2.ModelDriven;
  5. import com.st.bean.Person;
  6.  
  7. public class PersonAction extends ActionSupport implements ModelDriven<Person>{
  8.  
  9. private Person person;
  10. //如果不指定action中的method,就会默认的走这个方法
  11. public String execute() throws Exception{
  12. return SUCCESS;
  13. }
  14. //主题在Struts2中的action中的方法都必须返回一个String类型的参数
  15. public String personAdd(){
  16. System.out.println(person.getId()+"---"+person.getName()+"----"+person.getAge());
  17. return SUCCESS;
  18. }
  19. //让jsp页面的name对应的value自动注入到对象中的属性中去。
  20. public Person getModel() {
  21. this.person = new Person();
  22. return person;
  23. }
  24. }

1.0、Struts2的简单搭建方法的更多相关文章

  1. 基于MVC设计模式的Web应用框架:struts2的简单搭建(一)

    Struts2的初步介绍 Struts2是apache项目下的一个web 框架,普遍应用于阿里巴巴.京东等互联网.政府.企业门户网站.虽然之前存在了很大的安全漏洞,在2013年让苹果.中国移动.中国联 ...

  2. 【SSH】——Struts2中的动态方法调用(一)

    首先我们来看一个简单的调用: 1.在web.xml中配置拦截器StrutsPrepareAndExecuteFilter.StrutsPrepareAndExecuteFilter实现了filter接 ...

  3. Struts2开发环境搭建,及一个简单登录功能实例

    首先是搭建Struts2环境. 第一步 下载Struts2去Struts官网 http://struts.apache.org/ 下载Struts2组件.截至目前,struts2最新版本为2.3.1. ...

  4. thinkPHP5.0框架验证码调用及点击图片刷新简单实现方法

    这篇文章主要介绍了thinkPHP5.0框架验证码调用及点击图片刷新简单实现方法,结合简单示例形式分析了thinkPHP5框架验证码相关配置.后台验证.前台刷新等操作技巧,学习thinkphp源码的朋 ...

  5. .Net Core3.0 WebApi 项目框架搭建 一:实现简单的Resful Api

    .Net Core3.0 WebApi 项目框架搭建:目录 开发环境 Visual Studio 2019.net core 3.1 创建项目 新建.net core web项目,如果没有安装.net ...

  6. 【Struts2】Struts2框架的搭建

    1,Struts2简介 struts1和struts2都是由Apache组织发布的,但是比较有趣的是struts2和struts1并没有“血缘关系”.在Apache发布struts1之后,当时是还是非 ...

  7. springmvc4环境简单搭建和定时任务

    之前复制粘贴创建了几个ssm的项目,然而回头让自己写的时候还是一头雾水,究其原因是spring的陌生.仅仅是写过几个helloworld而已.而且是照着写.我都不知道springmvc到底需要多少ja ...

  8. Redis Cluster搭建方法简介22211111

    Redis Cluster搭建方法简介 (2013-05-29 17:08:57) 转载▼       Redis Cluster即Redis的分布式版本,将是Redis继支持Lua脚本之后的又一重磅 ...

  9. 零配置简单搭建SpringMVC 项目

    SpringMVC是比较常用的JavaWeb框架,非常轻便强悍,能简化Web开发,大大提高开发效率,在各种Web程序中广泛应用.本文采用Java Config的方式搭建SpringMVC项目,并对Sp ...

随机推荐

  1. hdu2082 找单词 (母函数)

    找单词 题意: 中文题,考虑是不是要写个英文题意..(可惜英语水平不够  囧rz)                (题于文末) 知识点: 母函数(生成函数): 生成函数有普通型生成函数和指数型生成函数 ...

  2. leetcode -- Convert Sorted List to Binary Search Tree

    Given a singly linked list where elements are sorted in ascending order, convert it to a height bala ...

  3. UVA - 11137 Ingenuous Cubrency[背包DP]

    People in Cubeland use cubic coins. Not only the unit of currency iscalled a cube but also the coins ...

  4. Spring---BeanFactory

    Spring---BeanFactory   BeanFactroy是一个Spring容器,用于创建,配置,管理bean,bean之间的依赖关系也有BeanFactory负责维护: BeanFacto ...

  5. struts之类型转换

    Struts2的内置类型转换器: Struts2的内置类型转换器,可以为你处理大多数的类型转换,这包括了以下类型和String类型之间的转换! 1.String 将int,double,boolean ...

  6. enumerate用法

    Return an enumerate object. sequence must be a sequence, an iterator, or some other object which sup ...

  7. Linux 进程间通讯详解五

    msgrcv函数 ssize_t msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp,int msgflg); --功能:是从一个消息队列接 ...

  8. CXF 动态创建客户端调用稳定版本号为2.7.18

    今天用动态创建客户端的方式调用webservice,报了这样一个错: 2017-01-05 20:51:46,029 DEBUG main org.apache.cxf.common.logging. ...

  9. MySQL常用数据库小结

    SQL分类: DDL-数据定义语言(CREATE,ALTER,DROP,DECLARE) DML-数据操纵语言(SELECT,DELETE,UPDATE,INSERT) DCL-数据控制语言(GRAN ...

  10. knockoutJS学习笔记04:监控属性

    一.语法介绍 先来看一个简单的例子: <span data-bind="text:name"></span> var obj = {name:ko.obse ...