1、Struts2的简单搭建方法

一、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类的字段相对应

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
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>
    <title>Struts2核心拦截器示例</title>
  </head>

  <body>
     <form method="post" action="<%=request.getContextPath() %>/person/personAdd">
         <table>
            <tr>
                <td>ID:</td>
                <td><input type="text" name="id" /></td>
            </tr>
            <tr>
                <td>姓名:</td>
                <td><input type="text" name="name" /></td>
            </tr>
            <tr>
                <td>年龄:</td>
                <td><input type="text" name="age" /></td>
            </tr>
            <tr>
                <td><input type="submit" /></td>
                <td><input type="reset" /></td>
            </tr>
         </table>
      </form>
  </body>
</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
 8 public class PersonAction extends ActionSupport implements ModelDriven<Person>{
 9
10     private Person person;
11     //如果不指定action中的method,就会默认的走这个方法
12     public String execute() throws Exception{
13          return SUCCESS;
14     }
15     //主题在Struts2中的action中的方法都必须返回一个String类型的参数
16     public String personAdd(){
17         System.out.println(person.getId()+"---"+person.getName()+"----"+person.getAge());
18         return SUCCESS;
19     }
20     //让jsp页面的name对应的value自动注入到对象中的属性中去。
21     public Person getModel() {
22         this.person = new Person();
23         return person;
24     }
25 }
时间: 2024-08-27 12:32:42

1、Struts2的简单搭建方法的相关文章

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

首先是搭建Struts2环境. 第一步 下载Struts2去Struts官网 http://struts.apache.org/ 下载Struts2组件.截至目前,struts2最新版本为2.3.1.3,下载struts-2.3.16.3-all.zip,解压,放着. 第二步 新建Web Project并导入jar包在MyEclispe中新建Web Project,然后找到解压的Struts2包,在里面apps文件夹下找到struts2-blank.war,解压这个WAR文件,将里面WEB-IN

Centos6.4 搭建Git服务器 (最简单的方法)

下载 git-1.8.2.tar.gz tar -zvxf git-1.8.2.tar.gz cd git-1.8.2.2 sudo make prefix=/usr/local/git all sudo make prefix=/usr/local/git install git –version 查看版本 以上是服务器安装. 下面是建库. centos服务器上建库及测试 mkdir /git cd /git git –bare init //建立空仓库 git ssh-keygen (建本地

(1)Jenkins Linux环境下的简单搭建

(1)Jenkins Linux环境下的简单搭建 Jenkins是一个开源软件项目,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能. ----百度百科 这是一款基于Java开发的工具.种种原因,最近刚开始接触,决定研究一下.Jenkins的搭建方法不止一种,一下就是个人总结的其中一种,文章内容比较浅显,不足之处,欢迎指正. 首先,所需要准备的工具JDK.Maven.资料上显示JDK版本最好高于1.7,并没有研究1.7以下版本,所谓"没有实际调研,就没有发言权",在此就不做过多

solr 简单搭建 数据库数据同步(待续)

原来在别的公司负责过文档检索模块的维护(意思就是不是俺开发的啦).所以就稍微接触和研究了下文档检索. 文档检索其实是全文检索,是通过一种技术把N多文档进行一定规律的切割归类,然后创建易于搜索的索引式文件,然后搜索具有某些规律的文档时,能够通过快速定位索引,然后根据索引提供的信息精确定位到文档从而实现迅速找到文档.这个文档一般成为条目. 上家公司的时候使用的是Lucene加上Zoie实现的.lucene是apache下的开源项目,不过并不是全文检索的实现,而是一个全文检索的引擎,是一个架构,是其他

【Struts2】★☆之struts2对Action提交方法进行验证

[Struts2]★☆之struts2对Action提交方法进行验证 在实际的开发项目中,我们通常采用的是js对我们输入的值进行验证,例如,用户名的长度,密码长度,等等.但是这样做,不好之处就是我们可以通过人为的将开发者的验证js注掉,这样就导致验证失败,对后台安全性是一个很大的威胁,在采用struts2进行开发时,我们可以采用框架内置的校验器,对我们的Action进行校验.本文所讲诉的就是如何使用重写struts2中的ActionSupport里面的validate方法对输入值进行校验. ok

【JavaEE】Springmvc+Spring+Hibernate搭建方法及example

前面两篇文章,分别介绍了Springmvc和Spring的搭建方法,本文再搭建hibernate,并建立SSH最基本的代码结构. Hibernate和前面两个比就比较复杂了,Hibernate是一个orm的框架,也就是负责面向对象中的对象(Object)和关系型数据库这个关系(Relation)之间的映射(Mapping).因为关系型数据库的思维方式,和编程的时候对于对象的理解是有偏差的,所以也有一些面向对象的数据库,但是随着这些orm框架的完善,面向对象的数据库就销声匿迹了. 当然,我这篇文章

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

之前复制粘贴创建了几个ssm的项目,然而回头让自己写的时候还是一头雾水,究其原因是spring的陌生.仅仅是写过几个helloworld而已.而且是照着写.我都不知道springmvc到底需要多少jar,都用来干嘛.所以,接下来要用心看spring原理了. 最近由于有定时任务的需求,简单搭建了一个springmvc4的helloworld. ide采用的是idea,当然eclipse应该也是没问题的,因为都是maven项目. 1.创建好maven结构. 可以通过new->project->ma

〖Linux〗PPTP_VPN 搭建方法

PPTP pptp还是比较老牌了,它是基于七层网络模型中的第二层,稳稳的 接下来介绍pptp vpn搭建和连接的方法,一般我使用它是为了打通各个网段(通常是持续集成环境上) 搭建步骤 Server 安装依赖包 依赖很少,就一个pptpd sudo apt-get install pptpd 配置ppp分配的ip地址 sudo vi /etc/pptpd.conf # 修改配置 localip 10.1.0.1 remoteip 10.1.0.100-200 配置帐户密码 sudo vi /etc

十分钟用Windows服务器简单搭建DHCP中继代理!!

                     十分钟用Windows服务器简单搭建DHCP中继代理!! 一.什么是中继代理? 大家都知道DHCP分配地址都需要用到IP广播,但是广播是不能在两个网段之间进行的.那么和DHCP服务器不是在同一个网段的客户机怎么获得相应的IP地址呢?这时,就要用到DHCP中继代理了. 在另一个Windows服务器上只要配备两块网卡,再安装一个简单的服务器"角色"就可以实现DHCP中继代理了! 二.实验拓补图 三.实验步骤 1.配置DHCP服务器 1.1).注意,