`
chinagdvea
  • 浏览: 132344 次
  • 性别: Icon_minigender_1
  • 来自: 韶关
社区版块
存档分类
最新评论

Struts2学习笔记(4) - OGNL

阅读更多
通过OGNL实现表单数据的获取,并自动类型转换,以及编写自定义类型转换器

1.自定义类型 User.java

public class User {
  private String name;
  private Map pets;

  ...
  Setter and Getter
  ...
}


public class Pet {
  private name;

  ...
  Getter and Setter
  ...
}


2.编写自定义类型转换器

//  StrutsTypeConverter由org.apache.struts2.util.*提供,它主要提供convertFromString()和convertFromString()方法,用于将字符串转化成类以及将类转化成字符串
public class PetConverter extends StrutsTypeConverter{

  //  context参数是一个 action context,values是由表单提供的输入参数,toClass在API中的解释为 "the class to convert to "作用暂时未知
  public Object convertFromString(Map context, String[] values,Class toClass) {
    Pet pet = new Pet();
    pet.setName(values[0]);
    return pet;
  }

  public String convertToString(Map context, Object o) {
    Pet pet = (Pet)o;
    String name = pet.getName();
    return name;
  }
}


3.编写表单action类 OGNLAction.java

pulbic class OGNLAction extends ActionSupport {
  public String execute() {
    
    //  通过ActionContext获得该线程的session
    ActionContext ac = ActionContet.getContext();
    Map session = ac.getSession();
    
    //  将user存入session.以供结果页面使用
    session.put("user", user);
  
    return SUCCESS;
  }

  private User user;
  ...
  Getter and Setter
  ...
}


4.在action类的properties文件中配置自定义类型转换器

OGNLAction.properties
//  指定User的pets属性使用自定义转换器
User.pets = com.vea.converter.PetConverter


5.编写信息输入页面 FillForm.jsp
<%@ page language="java" contentType="text/html; UTF-8"  pageEncoding="UTF-8" %>
<%@ taglib prefix="s" uri="/struts-tags" %>

...
<body>
  <s:form action="OGNLAction" >
    <s:textfield name="user.name" label="UserName" />
    <s:textfield name="user.pets['pet1'].name" label="Pet1Name" />
    <s:textfield name="user.pets['pet2'].name" label="Pet2Name" />
    <s:submit />
  </s:form>
</body>
...


6.配置struts.xml

<constant name="struts.devMode" value="true" />

<package name"ognl" namespace="/" extends="struts-default" >
  <action name="FillForm" >
    <result>/FillForm.jsp</result>
  </action>

  <action name="PetConverter" class="con.vea.converter.PetConverter" >
    <result>/Result.jsp</result>
    <result name="input">/FillForm.jsp</result>
  </action>
</package>
...
分享到:
评论

相关推荐

    struts2 学习重点笔记

    ### Struts2 学习重点知识点总结 #### 一、Struts2 概念与架构 **1.1 Struts2 简介** - **定义**:Struts2 是 Apache 组织提供的一个基于 MVC 架构模式的开源 Web 应用框架。 - **核心**:Struts2 的核心其实是 ...

    struts2学习笔记.doc

    ### Struts2学习笔记知识点概览 #### 一、环境搭建 **1.1 Struts2简介** - **Struts2概述**:Struts2是一个开源的MVC框架,它结合了Struts 1.x、WebWork和其他一些框架的优点。Struts2的主要目标是简化Web应用程序...

    struts2学习笔记(完美总结)——转自OPEN经验库

    本文将深入探讨Struts2的核心概念,包括Action、Result、配置文件、OGNL与ValueStack、Tags以及项目中的关键实践。 **一、Action** Action是Struts2中处理业务逻辑的核心组件,它是实现了`...

    struts2学习笔记总结

    本笔记将全面总结Struts2的核心概念、主要功能以及实际开发中的应用。 一、Struts2概述 Struts2是Apache软件基金会下的一个开源项目,它继承了Struts1的优点并解决了其存在的问题,如性能和灵活性。Struts2的核心是...

    struts2学习笔记

    ### Struts2学习笔记知识点详解 #### 一、准备工作及实例 **1. 解压struts-2.1.6-all.zip** - **Apps目录**:包含struts2自带的例子程序,适合初学者通过实际案例了解框架的基本用法。 - **Docs目录**:官方文档...

    struts2四天的学习笔记

    13. ** strut2四天笔记**:这份学习笔记可能涵盖了以上所有知识点,包括如何创建Action,配置struts.xml,使用OGNL表达式,处理异常,以及实践中的各种技巧和最佳实践。 在四天的学习过程中,你应该通过实践和理解...

    struts2 OGNL语言学习笔记

    Struts2 OGNL语言学习笔记 OGNL(Object-Graph Navigation Language)是 Struts 2 中的一种表达式语言,主要用于简化 JSP 页面中的编码,使页面与后台代码分离。下面是 OGNL 语言的主要特点和用法: 1. 支持对象...

    Java相关课程系列笔记之十三Struts2学习笔记.doc

    本笔记将详细解析Struts2的核心概念、发展历程、使用方法以及实际案例,帮助读者深入理解并掌握这一框架。 1. **Struts2概述** - **为什么使用Struts2**:在Web应用开发中,Struts2提供了结构化的控制层,有助于...

    struts2综合笔记

    - **发展历程**: Struts2 是在 WebWork 框架的基础上发展起来的,因此学习 Struts2 实际上也是学习 WebWork。 #### 二、Struts2 的核心组件分析 **控制器**: - **Servlet VS Filter**: - **Servlet**: - 在内存...

    Struts2学习笔记2012

    ### Struts2学习笔记2012 #### 一、建立一个Struts2工程 **步骤详解:** 1. **创建Web项目:** - 在MyEclipse中选择“File” &gt; “New” &gt; “Dynamic Web Project”,创建一个新的Web项目。 2. **解压并配置...

    Struts2学习笔记

    本学习笔记将深入探讨Struts2的核心概念、架构以及实际应用。 一、Struts2框架概述 1. 架构:Struts2基于Model-View-Controller(MVC)设计模式,将业务逻辑、数据处理和用户界面分离,提高了代码的可读性和可维护...

    Struts2_OGNL 笔记

    Struts2_OGNL笔记主要关注的是如何在Struts2框架中使用OGNL(Object-Graph Navigation Language)表达式语言。OGNL作为一种强大的表达式语言,常用于Struts2的视图层,允许开发者轻松地访问和操作Java对象的属性。 ...

    Struts1及14. Struts2学习笔记

    本学习笔记将对Struts1和Struts2进行详细解析。 **Struts1简介** Struts1是早期流行的MVC框架,它的核心是ActionServlet,负责处理HTTP请求,并通过ActionForm对象收集表单数据,然后调用Action类的方法进行业务...

    OGNL学习笔记,包含struts2中ognl的各种用法

    本篇笔记主要介绍了在Struts2中使用OGNL的一些基本用法。 首先,OGNL可以用来获取不同范围内的属性值。在Java Web开发中,有四种常见的作用域:Request、Session、Application和Page。在示例代码中,`&lt;s:property&gt;`...

Global site tag (gtag.js) - Google Analytics