struts2 (二)

struts2 配置文件struts.xml。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
   "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
   "http://struts.apache.org/dtds/struts-2.3.dtd">
    <struts>
<!--bean 配置-->
<bean name=" bean name" class="bean class"/>
<!--常量配置 ,指定struts2国家化资源文件的名字为 messageResource-->
<constant name="struts.custom.i18n.resources" value="messageResource"/>
<!--导入一个配置文件,通过种方式可以将struts2的Action按模块匹配到多个配置文件-->
<include file="example.xml"/>
<!--所有的Action配置都应该放在package下,name 定义包名,extends定义承包包空间struts-default-->
        <package name="default" extends="struts-default">
            <!--Action配置可以有多对,name是对业务控制器命名,在表单中指定的名字需要与该名字一致,class指定Action类的位置-->
<action name="login" class="action.LoginAction">
<!--定义两个逻辑视图和物理资源之间的映射,name值是Action中返回的结果,即逻辑视图-->
                <result name="error">error.jsp</result>
                <result name="success">success.jsp</result>
                <result name="blank">error.jsp</result>
            </action>
        </package>
    </struts>  

bean配置

type:指定bean实例实现的Struts2规范,该规范通常是通过某个接口来体现的,如果配置Bean作为框架的核心组件来使用,就应该指定该属性。

optional:指定该Bean是否是一个可选bean。

static:指定允许不创建Bean实例,而是让Bean接受框架常量,这时属性设置为true。但是当指定了type属性时,该属性不应该为true。

拦截器配置

<!--拦截器配置-->
<interceptors>
<interceptors-ref name="拦截器名字" class="拦截器类">
...
</interceptors-stack>
</interceptors>

OGNL表达式

对象图导航语言(Object-Graph Navigation Language,OGNL)是一种功能强大的表达式语言(Expression Language,EL),通过简单一致的表达式语法,可以存取对象的任意属性,调用对象的任意方法,遍历整个对象的数据以及自动实现字段类型转换等功能。

OGNL有三个参数:表达式、根对象、上下文环境。

表达式是OGNL的核心,所有的OGNL操作都是在解析表达式的基础上进行的。

根对象是OGNL要操作的对象,在表达式规定了要完成的工作后,需要指定工作的操作对象。

上下文环境是OGNL要执行操作的地点。

如果使用OGNL要访问的不是根对象,则需要使用名称空间,用“#”来表示。在struts2中堆值就是OGNL的根对象,获取堆值属性可以使用${属性},如${name}获取name值。

Struts2 标签库


分为三大类:UI标签、非UI标签、Ajax标签。

 

时间: 2024-07-30 20:26:57

struts2 (二)的相关文章

深入struts2(二) ---stuts2优点和主要包、类功能

1.1     Struts2 上节已讲,struts2在webwork基础发展起来的mvc框架.MVC框架相信一般码农都比较了解,这里不再重说.在这里仅仅对于一下struts1,struts2做了哪些改进呢?(以下内容从网上汇总) ?  Struct2的action是一个请求对应一个实例(每次请求都会new出一个对象),没有线程安全方面的问题 ?  Action不再依赖servlet api,有利于测试,并且实现tdd ?  选择使用pojo类来封装请求的参数 1.2     Struts2软

Struts2(二)---将页面表单中的数据提交给Action

问题:在struts2框架下,如何将表单数据传递给业务控制器Action. struts2中,表单想Action传递参数的方式有两种,并且这两种传参方式都是struts2默认实现的,他们分别是基本属性注入.域模型注入 .其中: ---基本属性注入,是将表单的数据项分别传入给Action中的一些基本基本类型. ---域模型注入,是将表单的数据项打包传入给Action中的一个实体对象. 我们项目Struts2的实例,在其基础上使用这2中方式完成页面向Action的参数传递.具体的我们可以在项目首页r

浅谈Struts2(二)

一.struts2的跳转 1.action跳转JSP a.默认为forward <action name="action1" class="com.liquidxu.struts2.FirstAction"> <result name="success" type="dispatcher">/admin/index.jsp</result> </action> <resul

Struts2(二)工作原理

一.概述 1.struts框架本身分为三个部分:核心控制器FilterDispatcher.业务控制器Action和用户实现的企业业务逻辑组件. 2.struts2工作的基本流程: 客户端初始化一个指向Servlet容器的请求 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter被调用,该过滤器询问ActionMaper这个请求是否需要调用某个Action 如果ActionMapper决定需要调用某个Actio

ssh框架-Struts2(二)

上篇文章我们了解了怎么配置struts.xml文件,以及前端控制器配置怎么配置,,Action进阶,Result结果配置,Struts2中的Servlet的API的访问,以及怎么获得请求参数.今天我们在深入讲解一下OGNL表达式,OGNL中的符号,和常用的拦截器,标签库 一,OGNL表达式 1.概述 1.1什么是OGNL ? OGNL是Object-Graph Navigation Language的缩写,俗称对象图导航语言. 它是一种功能强大的表达式语言,通过它简单一致的表达式语法,可以存取对

struts2(二)

1:Stream <result-type name="stream" class="org.apache.struts2.result.StreamResult"/> A custom Result type for sending raw data (via an InputStream) directly to the HttpServletResponse. Very useful for allowing users to download c

Struts2(二):工作原理

struts可查看源码:https://github.com/apache/struts 在学习struts2之前,我先看了一些比较早版本对struts2的工作原理相关的介绍,顺便抄写过来,用来帮助自己要弄清这个框架的工作原理. struts2.1.3之前使用的FilterDispatcher,之后的版本使用StrutsPrepareAndExecuteFilter,而我这里还是以Dispatcher为例来记录的. 依据: Since Struts 2.1.3, use org.apache.s

【Struts2二】结果集(result-type)

在jsp/servlet中,结果集通常是指请求转发和重定向这两种! Struts2作为框架,提供了基于这两种的更多的结果集! 在struts-default.xml中定义了一些默认的结果集:          <result-types> <result-type name= "chain" class="com.opensymphony.xwork2.ActionChainResult" /> <result-type name= &

Struts2(二.用户登录模块)

1.编写Javabean /src/myuser/User.java 在strut1中,Javabean需要继承于struts1 api中的ActionForm类.struts2没有此要求 struts2 也没有formbean,通常使用Domain Model的方式向action注入数据 1 package myuser; 2 3 public class User { 4 private int id; 5 private String userName; 6 private String