Struts2简介,新手入门~~

来源:互联网 发布:linux 线程退出 编辑:程序博客网 时间:2024/06/05 11:42

大四学长一只,整理了一下老师讲的知识,一边复习一边写出来跟大家分享。写的不好的地方,大家多多指教~

Struts2算是风靡过一时的JavaWeb MVC框架(好像现在比较流行Spring,ssm之类的),使用它可以写出符合MVC模式的Web程序,极大地提高开发效率。
讲一下优点
1. Struts2框架自动将请求参数的值注入给Action类中同名属性(借助于set方法,一定要同名),这样可以省略getParameter语句。
2. Action中的属性存储到请求范围内的特定属性(struts.valueStack)中,可通过EL表达式访问(调用get方法)。这样可以省略 request.setAttribute语句。
3. Action中转发的输出页面在struts.xml中配置,这样可以省略forward语句。
Struts2的组成:
1. 控制器层:核心控制器(FilterDispatcher), 业务控制器(Action)
2. 模型层:业务逻辑组件,数据库访问组件。实现业务逻辑,由javabean或者EJB构成。
3. 视图组件:HTML,JSP,Struts2标签以及FreeMaker和Velocity等技术。

StrutsPrepareAndExecuteFilter:核心控制器,struts2里很重要的东东,负责接受所有请求,在web.xml中配置,系统能够启动时自动创建该控制器。
Action:负责处理单个特定的请求,Action本质是一个普通的类,它不需要实现任何接口或者继承任何类。
struts.xml:实现视图(jsp)和业务逻辑组件(Action)之间关系的声明,action在这里面进行配置。

实现步骤:
Step1:导入Struts2 Jar包。
Step2:在web.xml中注册Struts2中心控制器(过滤器)使其可以拦截请求。
Step3:编写输入页面input.jsp.
Step4:编写完成Action类
Step5:建立Struts2配置文件(struts.xml)配置Action类。
Step6:编写输出页面output.jsp

//web.xml里的配置<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>
//struts.xml的配置<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN""http://struts.apache.org/dtds/struts-2.1.7.dtd";><struts>    <constant name="struts.configuration.xml.reload" value="true"/>    <package name="action" namespace="/" extends="struts-default">        <action name="add" class="com.hp.action.Add" method="execute">            <result name="+">/positive.jsp</result>            <result name="-">/negative.jsp</result>        </action>    </package></struts>

注意:配置包时必须指定name属性,该name属性值可以任意取名,但必须唯一,他不对应java的类包,如果其他包要继承该包,必须通过该属性进行引用。包的namespace属性用于定义该包的命名空间,命名空间作为访问该包下Action的路径的一部分(通常为“/”)。 通常每个包都应该继承struts-default包, 因为Struts2很多核心的功能都是拦截器来实现。

下面是我自己写的比较简单的一个action例子,用来求两个整数和,并判断正负数,从而跳往不同的jsp。

package com.hp.action;/*** Created by 李宇寒* 2017/9/15 0015 下午 3:01.*/public class Add {private int x,y,sum;public int getX() {    return x;}public void setX(int x) {    this.x = x;}public int getY() {return y;}public void setY(int y) {this.y = y;}public int getSum() {return sum;}public void setSum(int sum) {    this.sum = sum;}public String execute(){    sum=this.x+this.y;    if(sum>0){        return "+";    }    else{        return "-";    }    }}

当用户点击“求和”时,提交请求被Struts2框架的中心控制器截获,它查找配置文件struts.xml,找到与请求地址匹配(/add)的Action类(业务逻辑控制器),执行该类的特定方法(通过method属性设置),根据该方法的返回值(字符串类型)再次查配置文件确定输出的页面。

这只是struts2的简单介绍,struts2还可以实现很多功能,比如:

  • 多文件上传,下载
  • 拦截器
  • 数据校验,表单验证
  • 国际化
  • 还有ongl、struts标签等。
原创粉丝点击