JavaEE应用开发教程_课件 第十章 Struts应用开发

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

String [] cnbooks = request.getParameterValues("cnbook");
for(int i=0;i<cnbooks.length;i++){
System.out.println(" 中文图书 "+cnbooks[i] +"/t");
public String getCnbook() {
OgnlTest代码如图10.4所示。
JavaEE 实用教程
Struts.xml文件配置如图10.5所示。
JavaEE 实用教程
JavaEE 实用教程
选中WebRoot文件夹,新建一个JSP网页,名为show.jsp, 具体如图10.6所示。
10.2 Struts2 标签
JavaEE 实用教程
第10章 Struts应用开发
授课教师:
本章内容
1 OGNL 2 Struts2标签 3 Struts2 国际化 4 Struts2 中文处理
JavaEE 实用教程
10.1 OGNL
JavaEE 实用教程
OGNL称为对象图导航语言(Object Graph Navigation Language)。所谓对象图,即以任意一个对象为根,通 过OGNL可以访问与这个对象关联的其它对象。OGNL与 EL语言(Expression Language)相类似,都是功能表达 式语言,通过它简单一致的表达式语法,可以存取对象的 任意属性,调用对象的方法,遍历整个对象的结构图,实 现字段类型转化等功能,同时OGNL也是实现Struts2标签 的基础内容。
JavaEE 实用教程
JavaEE 实用教程
【例10.1】OGNL访问Web对象 打开MyEclipse新建一个名为Chap10.1的WebProject项
目,并按例9.1中步骤添加Struts2框架,将Struts2添加到 项目中后,双击Web.xml文件修改Struts2过滤器类,将过 滤器的类改为org.apache.struts2.dispatcher.Filter Dispatcher类。 选中src文件夹,新建一个名为com.action的包,选中该 包新建类,类名:OgnlTest,如图10.3所示。
一项后,那么第二个列表框中将自动为在第一个列表框选定项的相关信息。 常用属性: name:指定第一个下拉列表框名称。 doubleName:指定第二个下拉列表框的名称。 list:指定第一个下拉列表框中选项的集合。 doubleList:指定第二个下拉列表框中的选项集合。 listKey:生成第一个下拉类表框value属性值 doubleListKey:生成第二个下拉类表框value属性值 top:指定是第一列表框。 已修改
return cnbook;
}
public void setCnbook(String cnbook) {
book = cnbook;
}
}
public String getEnBook() {
String [] enBooks = request.getParameterValues("enBook");
8 <s:optiontransferselect>标签 optiontransferselect标签用来创建两个选项以及转移下拉列表项,该标签会自动生成两个下拉
列表框,同时生成相关的按钮,这些按钮可以控制选项在两个下拉列表之间的移动、排序。 常用属性: addAllToLeftLabel:设置实现全部左移动功能的按钮上的文本。 addAllToRightLabel:设置实现全部右移动功能的按钮上的文本。 addToLeftLabel:设置实现左移动功能的按钮上的文本。 addToRightLabel:设置实现右移动功能的按钮上的文本。 addAddAllToLeft:设置全部左移动功能的按钮。 addAddAllToRight:设置全部右移动功能的按钮。 addAddToLeft:设置左移动功能的按钮。 addAddToRight:设置右移动功能的按钮。 leftTitle:设置左边列表框的标题。 rightTitle:设置右边列表框的标题。 allowSelectAll:设置全部选择功能的按钮。 selectAllLabel:设置全部选择功能按钮上的文本。 multiple:设置第一个列表框是否多选,默认是true。 doubleName:设置第二个列表框的名字。 doubleList:设置第二个列表框的集合。 doubleMultiple:设置第二个列表框是否多选,默认是true。
【例10.2】combobox标签
接上例,在WebRoot中新建一个网页,名为combobox.jsp,输入如下代码:
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib prefix="s" uri="/struts-tags"%>
import com.opensymphony.xwork2.ActionSupport;
import com.entity.*;
public class LabelAction extends ActionSupport {
private String cnbook;
private String enBook;
JavaEE 实用教程
5 <s:file>标签 file标签用于在页面上生成一个上传文件的元素。上传文件的具体实现
参考第9章例9.7。 6 <s:select>标签 select标签用来生成一个下拉列表框,通过指定list属性,系统会使用
list属性指定的下拉列表内容。 常用属性: size:指定下拉文本框中可以显示的选择项个数,可选项。 multiple:设置该列表框是否允许多选,默认值为false,可选项。 7 <s:token>标签 token标签的目的是为了防止用户多次提交表单,避免恶意刷新页面。
JavaEE 实用教程
2 <s:checkboxlist>标签 checkboxlist标签可以一次创建多个复选框,在HTML中
可以使用多行<input type=“checkbox”>实现。 3 <s:combobox>标签 combobox标签生成一个单行文本框和一个下拉列表框的
组合,两个表单元素对应一个请求,单行文本框中的值对 应请求参数,下拉列表框只是起到辅助功能。
Context。OGNLContext结构如图10.2所示。OGNL Context是Map类型数据,OGNL Context的存储内容可 分为2部分,即ValueStack堆栈,和各类Web对象,其中 ValueStack存放数据称为根对象,ValueStack中的数据, 是由用户访问某个Action时,该Action各类属性值压入进 栈所产生的,ValueStack内的数据访问时可以直接使用 键名访问;而其他Web对象则是将各类JSP中的内置对象 放置在OGNL Context中,访问时需要加”#号”。
非用户界面标签(非UI标签):主要用来数据访问、逻辑 控制,可分为数据标签和逻辑控制标签。
JavaEE 实用教程
10.2.1 表单标签 struts2的表单标签可分为两类:form标签本身和包装
HTML表单元素的其他标签。form标签本身的行为不同于 它内部的元素。下面就对常用的标签进行讲解。 1 <s:checkbox>标签 checkbox标签是复选框标签,格式如下: <s:checkbox label="***" name="***" value="true"/>
}
}
}
List<Book> lists = new ArrayList<Book>();
Book book1 = new Book(1,"struts2权威指南",20.2);
Book book2 = new Book(2,"轻量级javaeye 企业应用空实战",20.2);
Book book3 = new Book(3,"ajax讲义",20.2);
OGNL在Struts2中主要实现两个方面的功能:
1、表达式语言:实现将表单或Struts 2标签与特定的Java 数据绑定起来,用来将数据移入、移出框架。
2、类型转换:实现输入数据和输出数据的转换。
JavaEE 实用教程
1、OGNL使用原理 OGNL称为对象图导航语言。所谓对象图,就是将任意的
lists.add(book1);
lists.add(book2);
lists.add(book3);
request.setAttribute("lists", lists);
return SUCCESS;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionContext;
headerValue="---请选择---" headerKey="1" list="{'红色','蓝色','黑色','白色'}"/>
</s:form>
</body>
</html>
JavaEE 实用教程
4 <s:doubleselect>标签 doubleselect标签生成一个相互关联的列表框,在第一个列表框中选择某
return enBook;
for(int i=0;i<enBooks.length;i++){
}
public void setEnBook(String enBook) {
System.out.println(" 中文图书 "+enBooks[i] +"/t");
this.enBook = enBook;
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>combobox标签的使用</title>
</head>
<body>
<s:form>
<s:combobox label="颜色选择" name="colorName" readonly="false"
一个对象设为根对象,通过这个对象使用OGNL方式,访 问与这个对象相关联的对象。例如: 有一个Student类、Classes类、Teacher类,其中学生类 关联到班级类,班级类关联到教师类,关系如图10.1所示。
JavaEE 实用教程
2 OGNL Context OGNL功能是基于OGNL上下文实现的,也就是OGNL
Struts2 框架提供了丰富的标签库用来构建视图组件。 Struts2标签库大大简化视图页面的开发,并且提高了视图 组件的可维护性。按照标签库提供的功能可以把Struts2标 签库分为3大类:UI标签、非UI标签和Ajax标签。
用户界面标签(UI标签):主要用来生成HTML元素的标签, 可分为表单标签和非表单标签。
public String execute() throws Exception {
ActionContext context = ActionContext.getContext();
HttpServletRequest request ext.get(ServletActionContext.HTTP_REQUEST);
JavaEE 实用教程
【例10.3】<s:optiontransferselect>标签 接上例,选择com.action包新建一个类,类名LabelAction,父类Action Support,主要代码如下所示。其中cnbook,enbook两个成员添加get与set方法。
package com.action;
相关文档
最新文档