struts2.3中,自定义标签和拦截器的问题

citybug_nj 2012-12-05 12:56:32
最近使用struts2.3在写一个程序。碰到了几个问题:
1.编写struts2的自定义标签,在java代码中,是否能用struts2的标签?比如,我要在java代码这么写:
str.append("<s:hidden name=\"text1\"/>");
这样是否可以?
2.如果上面的方法行不通,那么想把form中的struts2标签中的值当做参数传给自定义标签。是否可行?如何写?比如:
定义一个form
<s:form name="form1" action="list.do" method="post">
<s:textfield name="userName"/>
</s:form>
在自定义标签中如何得到“userName”的值?
3.struts2.1中可以自定义拦截器栈,把自定义的拦截器加进去。但是到了struts2.3的struts.xml中没有定义拦截器栈。如何把自定义拦截器加入进拦截器栈呢?
...全文
249 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
笑莫问 2012-12-05
  • 打赏
  • 举报
回复
1、struts肯定可以自定义标签,你要把str.append("<s:hidden name=\"text1\"/>");放到java代码的目的是什么了,不会自己用response跳转到jsp吧,感觉有些多余了 2、可以学习下jsp自定义标签 3、struts2.3还没怎么看,自定义拦截器应该是一样的,加在web.xml中。
citybug_nj 2012-12-05
  • 打赏
  • 举报
回复
第一个问题:我打算写一个分页标签,要用struts2框架。一般的分页倒是没有问题,但是在业务系统中,几乎都有按条件查询。我并不打算把查询条件写到URL或者自定义标签的参数中,在进行分页跳转的时候,把要跳转的页码值放到struts2标签中,提交到action中进行处理。 第二个问题:原来struts2的struts2.2中,默认的配置文件中就有拦截器栈,这个版本下的拦截器我是做过的。但是在用到struts2.3.4的版本中,默认的配置文件中没有了拦截器的部分。我想会不会因为版本的不同,定义拦截器栈有所变化呢?
fengyingkong 2012-12-05
  • 打赏
  • 举报
回复
回答: 1.可以这样写的 我见过的 2.struts标签有自动把json解析的功能,所以当你有值传过来时 你的<s:textfield value="XX.userName"/>
Anoth 2012-12-05
  • 打赏
  • 举报
回复
你的自定义标签作用是什么? 你是要输入框当前的值还是初始值? 可以把要传值的元素id作为属性值传给自定义标签,然后标签生成js去动态获取那个值。如果是静态的就可以直接把该值作为一个自定义标签的属性值传递
zyx80004 2012-12-05
  • 打赏
  • 举报
回复
你再action中,把它存入requst中。 #request.username
文档目录 Struts2讲义 作者:吴峻申 目录 第1章 Struts过时了吗? 10 1.1 Struts历史发展过程 10 1.2 Struts2的“简历” 13 1.2.1 标签库介绍 13 1.2.2 拦截器应用目的 14 1.2.3 FilterDispatcher和Action概述 14 1.2.4 Struts2配置文件处理 15 1.2.5 OGNL介绍和类型转换目的 15 1.2.6 进行校验 16 1.2.7 Web项目国际化根由 16 1.2.8 SiteMesh页面布局框架简介 17 1.3 我们为什么要用Struts2 17 1.4 Web项目使用Struts2初探 20 第2章 Web基础技术简介 31 2.1 B/S和C/S系统区别 31 2.2 JSP和Servlet介绍 32 2.3 XML知识介绍 34 第3章 Struts2核心技术 37 3.1 使用web.xml配置Struts2实现Web项目Struts2应用 37 3.2 使用配置文件struts.xml实现页面导航定义 38 3.3 使用Action类控制导航业务数据 40 3.4 使用ActionSupport进行校验 42 第4章 另一Struts2核心技术:拦截器 47 4.1 拦截器Struts2的缺省应用 47 4.2 拦截器原理实现 50 4.3 在Struts2配置自定义拦截器 53 4.3.1 扩展拦截器接口的自定义拦截器配置 54 4.3.2 继承抽象拦截器自定义拦截器配置 56 4.3.3 继承方法拦截器自定义拦截器配置 58 4.4 Struts2文件上传拦截器应用 61 4.4.1 Struts2文件上传功能开发 61 4.4.2 Struts2文件下载功能开发 68 第5章 Struts2标签库 73 5.1 Struts2标签使用原理解疑 73 5.2 OGNL表达式语言介绍 75 5.3 Struts2控制标签简介 79 5.3.1 append标签使用介绍 79 5.3.2 generator标签使用介绍 80 5.3.3 if、else、elseif标签使用介绍 81 5.3.4 iterator标签使用介绍 82 5.3.5 merge标签使用介绍 83 5.3.6 sort标签使用介绍 84 5.3.7 subset标签使用介绍 86 5.4 Struts2数据标签简介 88 5.4.1 action标签使用介绍 88 5.4.2 bean标签使用介绍 89 5.4.3 date标签使用介绍 91 5.4.4 debug标签使用介绍 94 5.4.5 include标签使用介绍 95 5.4.6 push标签使用介绍 97 5.4.7 set标签使用介绍 98 5.4.8 url标签使用介绍 99 5.4.9 param标签使用介绍 101 5.4.10 property标签使用介绍 101 5.5 Struts2表单标签简介 101 5.5.1 基础表单标签使用介绍 102 5.5.2 复杂表单标签使用介绍 106 5.5.3 其它表单标签使用介绍 114 5.6 Struts2非表单标签简介 115 5.6.1 主题和模板介绍 116 5.6.2 非表单标签介绍 119 5.7 Struts2自定义标签实现图形验证功能 121 第6章 Struts2非JSP视图技术 125 6.1 velocity视图技术使用介绍 125 6.2 freemarker视图技术使用介绍 128 6.3 JasperReports报表视图技术使用介绍 130 第7章 Struts2类型转换技术 135 7.1 Struts2类型转换使用介绍 135 7.1.1 基本数据类型转换功能 135 7.1.2 List集合类型数据类型转换功能 138 7.1.3 Set集合类型数据类型转换功能 141 7.2 类型转换发生异常处理方案 144 7.2.1 Struts2自带异常提示 145 7.2.2 Struts2局部异常提示定义属性文件使用介绍 146 7.2.3 Struts2全局异常提示定义属性文件使用介绍 147 第8章 Struts2输入校验 149 8.1 validate输入校验方式再谈 149 8.1.1 复习validate方法进行输入校验 149 8.1.2 validateXXX方法进行输入校验 153 8.2 利用配置文件进行输入校验方法说明 157 8.2.1 Struts2字段校验的配置文件形式 158 8.2.2 Struts2非字段校验的配置文件形式 161 8.2.3 Struts2输入校验出错信息的国际化配置形式 163 8.3 集合类型输入校验介绍 165 8.3.1 Struts2单个Java对象的输入校验形式 166 8.3.2 Struts2对象集合即批量输入的校验形式 169 8.4 Struts2输入校验器大全 171 第9章 Struts2国际化 178 9.1 Struts2国际化基础应用 178 9.1.1 国际化基础使用方式 178 9.1.2 占位符国际化使用方式 182 9.2 Struts2国际化使用范围说明 185 9.2.1 Struts2包范围属性文件国际化应用。 186 9.2.2 Struts2Action范围属性文件国际化应用 187 9.2.3 Struts2临时范围属性文件国际化应用 188 9.3 用户主动选择国际化应用介绍 191 第10章 Struts2页面布局实现 194 10.1 sitemesh基本使用方法 194 10.2 sitemesh高级应用 198 10.2.1 标签的使用介绍 198 10.2.2 标签的使用介绍 200 附录 204 附录1 安装JBoss让它部署Web项目 204 F1.1 安装 204 F1.2 手工部署Web项目 207 附录2 Mysql数据库使用和创建Web项目数据库 208 F2.1 安装 209 F2.2 创建数据库 216
第一部分 Strut 2:一个全新的框架 第1章 Struts 2:现代Web框架 2 1.1 Web应用程序:快速学习 2 1.1.1 构建Web应用程序 2 1.1.2 基础技术简介 3 1.1.3 深入研究 6 1.2 Web应用程序框架 7 1.2.1 什么是框架 7 1.2.2 为什么使用框架 8 1.3 Struts 2框架 9 1.3.1 Struts 2简史 9 1.3.2 Struts 2概览:MVC模式 10 1.3.3 Struts 2的工作原理 12 1.4 小结 14 第2章 初识Struts 2 16 2.1 声明性架构 16 2.1.1 两种配置 16 2.1.2 声明架构的两种方式 17 2.1.3 智能默认值 20 2.2 简单的HelloWorld示例 20 2.2.1 部署示例应用程序 20 2.2.2 探索HelloWorld应用程序 24 2.3 使用注解的HelloWorld 31 2.4 小结 33 第二部分 核心概念:动作、拦截器和类型转换 第3章 使用Struts 2动作 36 3.1 Struts 2动作简介 36 3.2 打包动作 39 3.2.1 Struts 2公文包示例应用程序 39 3.2.2 组织你的包 39 3.2.3 使用struts-default包的组件 41 3.3 实现动作 43 3.3.1 可选的Action接口 44 3.3.2 ActionSupport类 45 3.4 向对象传递数据 51 3.4.1 对象支持的JavaBean属性 52 3.4.2 ModelDriven动作 54 3.4.3 域对象用作数据转移的潜在危险 55 3.5 案例研究:文件上传 56 3.5.1 通过struts-default包获得内建的支持 56 3.5.2 fileUpload拦截器做什么 57 3.5.3 Struts 2公文包示例代码研究 58 3.6 小结 60 第4章 使用拦截器追加工作流 61 4.1 为什么要拦截请求 61 4.1.1 清理MVC 61 4.1.2 从拦截器受益 63 4.1.3 开发拦截器 64 4.2 拦截器的工作原理 64 4.2.1 总指挥ActionInvocation 64 4.2.2 如何触发拦截器 64 4.3 研究内建的Struts 2拦截器 67 4.3.1 工具拦截器 67 4.3.2 数据转移拦截器 67 4.3.3 工作流拦截器 69 4.3.4 其他拦截器 72 4.3.5 内建的拦截器栈 73 4.4 声明拦截器 74 4.4.1 声明独立的拦截器拦截器栈 74 4.4.2 将拦截器映射到动作组件 76 4.4.3 设置、覆盖拦截器参数 77 4.5 构建自定义拦截器 78 4.5.1 实现Interceptor接口 78 4.5.2 构建AuthenticationInterceptor拦截器 79 4.6 小结 82 第5章 数据转移:OGNL和类型转换 84 5.1 数据转移和类型转换:Web应用程序领域的常见任务 85 5.2 OGNL和Struts 2 85 5.2.1 OGNL是什么 85 5.2.2 OGNL如何融入框架 87 5.3 内建的类型转换器 89 5.3.1 立即可用的类型转换器 89 5.3.2 使用OGNL表达式从表单字段名映射到属性 90 5.4 自定义类型转换 101 5.4.1 实现类型转换器 102 5.4.2 在String和Circle之间转换 102 5.4.3 配置框架使用自定义转换器 103 5.5 小结 106 第三部分 构建视图——标签和结果 第6章 构建视图——标签 108 6.1 入门 108 6.1.1 ActionContext和OGNL 109 6.1.2 虚拟对象ValueStack 111 6.2 Struts 2标签概要 113 6.2.1 Struts 2标签API语法 113 6.2.2 使用OGNL设置标签属性 115 6.3 数据标签 117 6.3.1 property标签 117 6.3.2 set标签 118 6.3.3 push标签 119 6.3.4 bean标签 120 6.3.5 action标签 122 6.4 控制标签 124 6.4.1 iterator标签 124 6.4.2 if和else标签 125 6.5 其他标签 126 6.5.1 include标签 126 6.5.2 URL标签 127 6.5.3 i18n和text标签 128 6.5.4 param标签 129 6.6 使用JSTL和其他本地标签 130 6.7 OGNL表达式语言的基础知识 130 6.7.1 什么是OGNL 130 6.7.2 Struts 2常用的表达式语言特性 131 6.7.3 表达式语言的高级特性 135 6.8 小结 137 第7章 UI组件标签 139 7.1 为什么需要UI组件标签 139 7.2 标签、模板和主题 144 7.2.1 标签 146 7.2.2 模板 146 7.2.3 主题 146 7.3 UI组件标签 148 7.3.1 通用属性 148 7.3.2 简单组件 149 7.3.3 基于集合的组件 159 7.3.4 额外的组件 166 7.4 小结 168 第8章 结果 170 8.1 动作之后 170 8.1.1 页面上:如何使用自定义结果组件构建Struts 2 Ajax应用程序 171 8.1.2 实现JSON结果类型 173 8.2 常用的结果类型 180 8.2.1 RequestDispatcher,也叫做dispatcher 180 8.2.2 ServletRedirectResult,也叫做redirect 186 8.2.3 ServletActionRedirectResult,也叫做redirectAction 188 8.3 JSP替代品 189 8.3.1 VelocityResult,也叫做velocity 189 8.3.2 FreemarkerResult,也叫做freemarker 191 8.4 全局结果 192 8.5 小结 193 第四部分 完善应用程序 第9章 集成Spring和Hibernate/JPA 196 9.1 为什么在Struts 2使用Spring 196 9.1.1 依赖注入能做些什么 197 9.1.2 Spring如何管理对象和注入依赖 199 9.1.3 使用接口隐藏实现 200 9.2 将Spring添加到Struts 2 202 9.2.1 让Spring管理动作、拦截器和结果的创建 203 9.2.2 使用自动连线将依赖注入到动作、拦截器和结果 205 9.3 为什么在Struts 2使用JPA 207 9.3.1 使用JPA和Hibernate建立项目 208 9.3.2 基于Spring管理JPA编写代码 212 9.4 小结 216 第10章 探索验证框架 217 10.1 熟悉数据验证框架 217 10.1.1 验证框架的架构 218 10.1.2 Struts 2工作流的验证框架 219 10.2 将动作关联到验证框架 222 10.2.1 使用ActionClass-validations.xml声明验证元数据 223 10.2.2 研究内建的验证器 226 10.3 编写自定义验证器 227 10.3.1 检查密码强度的自定义验证器 227 10.3.2 使用自定义数据验证器 229 10.4 验证框架的高级主题 230 10.4.1 在域对象级别验证 231 10.4.2 使用验证上下文优化验证 233 10.4.3 验证继承 235 10.4.4 验证短路效应 236 10.4.5 使用注解声明验证 237 10.5 小结 239 第11章 理解国际化 240 11.1 Struts 2框架和Java i18n 241 11.1.1 使用ResourceBundle和Locale取得本地化文本 241 11.1.2 Struts 2如何解决本地Java对i18n支持的问题 243 11.2 Struts 2 i18n示例 244 11.2.1 Struts 2 i18n快速展示 244 11.2.2 幕后一览 246 11.3 Struts 2 i18n详情 247 11.3.1 Struts 2默认的TextProvider Re-sourceBundle搜索算法 248 11.3.2 从包取得消息文本 251 11.3.3 使用i18n标签指定包 254 11.3.4 参数化本地化文本 255 11.3.5 格式化日期和数字 256 11.4 覆盖框架默认的地域决定 257 11.4.1 让用户交互地设置地域 257 11.4.2 以编码的方式设置地域 259 11.5 小结 260 第五部分 高级主题和最佳实践 第12章 使用插件扩展Struts 2 264 12.1 插件概要 264 12.2 常用插件 265 12.2.1 SiteMesh 266 12.2.2 Tiles 267 12.2.3 JFreeChart 269 12.3 内部组件系统 271 12.3.1 Bean 271 12.3.2 常量 272 12.3.3 注入 272 12.3.4 Struts内部扩展点 273 12.4 编写浏览路径插件 274 12.5 小结 278 第13章 最佳实践 279 13.1 建立开发环境 279 13.1.1 建立IDE 280 13.1.2 重新加载资源 280 13.2 对动作进行单元测试 281 13.2.1 将IoC用于测试的优势 281 13.2.2 JUnit与测试 282 13.2.3 测试validation.xml文件 284 13.3 最大化重用 284 13.3.1 使用component标签组件化 285 13.3.2 重用模板化的标签 286 13.3.3 连接UI标签和对象 287 13.4 高级UI标签的使用 288 13.4.1 覆盖既有模板 288 13.4.2 编写自定义模板 288 13.4.3 编写自定义主题 289 13.5 小结 289 第14章 从经典Struts迁移 290 14.1 翻译经典Struts的知识 290 14.1.1 动作 290 14.1.2 ActionForm怎么了 292 14.1.3 切换标签库 293 14.1.4 拆分消息资源 294 14.2 逐步转换 296 14.2.1 逐步实现 296 14.2.2 动作映射 298 14.2.3 动作在哪里遇到表单 300 14.2.4 转换页面 301 14.2.5 不说英语 303 14.2.6 数据警察 304 14.2.7 两者能够和睦相处吗 306 14.3 小结 307 第15章 高级主题 308 15.1 高级动作的应用 308 15.2 动态方法调用 310 15.2.1 通配符方法的选择 310 15.2.2 动态工作流 312 15.3 使用令牌防止表单重复提交 313 15.3.1 使用s:token/表单标签 313 15.3.2 令牌拦截器规则的例外 314 15.4 自动显示等待页面 316 15.5 完成CRUD操作的一个动作 317 15.5.1 CRUD 317 15.5.2 拦截器和接口 318 15.5.3 连接各部分 323 15.6 Tiles和Struts 2 325 15.6.1 关注网站的界面外观 325 15.6.2 配置相互关系 326 15.6.3 使用声明性架构 329 15.6.4 使用Tiles控制器准备网页内容 331 15.7 小结 332
本书是广受赞誉的Struts 2优秀教程,它全面而深入地阐述了Struts 2的各个特性,并指导开发人员如何根据遇到的问题对症下药,选择使用最合适的特性。作者处处从实战出发,在丰富的示例直观地探讨了许多实用的技术,如数据类型转换、文件上传和下载、提高Struts 2应用的安全性、调试与性能分析、FreeMarker、Velocity、Ajax,等等。跟随作者一道深入Struts 2,聆听大量来之不易的经验之谈,你对Struts 2开发框架的理解和应用水平都将更上一层楼。本书适合Java Web 程序员阅读和参考 第1章 Model 2应用程序 1 1.1 Model 2概览 1 1.2 带servlet控制器的Model 2 2 1.2.1 Product动作类 3 1.2.2 ControllerServlet类 4 1.2.3 视图 6 1.2.4 部署描述文件 8 1.2.5 示例程序的运行 9 1.3 带过滤器调度程序的Model 2 9 1.4 小结 13 第2章初识Struts 14 2.1 Struts的优点 14 2.2 Struts的动作处理流程 15 2.3 拦截器 17 2.4 Struts配置文件 18 2.4.1 struts.xml文件 19 2.4.2 struts.properties文件 26 2.5 Struts应用程序示例 26 2.5.1 部署描述文件和Struts配置文件 27 2.5.2 动作类 28 2.5.3 运行app02a程序 29 2.6 依赖注入 29 2.6.1 概述 29 2.6.2 依赖注入的几种方式 31 2.7 小结 31 第3章动作与结果 32 3.1 动作类 32 3.2 如何访问资源 34 3.2.1 ServletActionContext对象 34 3.2.2 Aware接口 35 3.2.3 通过Aware接口访问资源 38 3.3 把静态参数传递给一个动作 41 3.4 ActionSupport类 41 3.5 结果 42 3.5.1 Chain 43 3.5.2 Dispatcher 44 3.5.3 FreeMarker 44 3.5.4 HttpHeader 44 3.5.5 Redirect 45 3.5.6 Redirect Action 46 3.5.7 Stream 47 3.5.8 Velocity 47 3.5.9 XSLT 47 3.5.10 PlainText 47 3.6 异常处理:exception-mapping元素 47 3.7 通配符映射 48 3.8 动态方法调用 51 3.9 对动作类进行测试 51 3.10 小结 51 第4章 OGNL 52 4.1 Value Stack栈 52 4.2 读取Object Stack里的对象的属性 53 4.3 读取Context Map里的对象的属性 54 4.4 如何调用字段和方法 55 4.5 如何访问数组类型的属性 56 4.6 如何访问List类型的属性 56 4.7 如何访问Map类型的属性 57 4.8 JSP EL:当OGNL帮不上忙时 58 4.9 小结 58 第5章表单标签 59 5.1 Struts标签的使用方法 59 5.2 表单标签的共同属性 60 5.3 form标签 62 5.4 textfield、password、hidden标签 63 5.5 submit标签 65 5.6 reset标签 65 5.7 label标签 66 5.8 head标签 66 5.9 textarea标签 66 5.10 checkbox标签 67 5.11 list、listKey和listValue属性 72 5.11.1 赋值一个String 72 5.11.2 赋值一个Map 73 5.11.3 赋值一个Collection或一个对象数组 73 5.12 radio标签 74 5.13 select标签 76 5.14 用optgroup标签对选项进行分组 79 5.15 checkboxlist标签 82 5.16 combobox标签 83 5.17 updownselect标签 85 5.18 optiontransferselect标签 87 5.19 doubleselect标签 90 5.20 主题 92 5.21 小结 94 第6章通用标签 95 6.1 property标签 95 6.2 a标签 97 6.3 action标签 97 6.4 param标签 98 6.5 bean标签 98 6.6 date标签 100 6.7 include标签 100 6.8 set标签 101 6.9 push标签 103 6.10 url标签 104 6.11 if、else和elseif标签 105 6.12 iterator标签 107 6.13 append标签 110 6.14 merge标签 111 6.15 generator标签 113 6.16 sort标签 116 6.17 subset标签 118 6.18 小结 119 第7章类型转换 120 7.1 类型转换概述 120 7.2 类型转换错误消息的定制 121 7.3 类型转换器的定制 125 7.3.1 对自定义的类型转换器进行配置 126 7.3.2 自定义的类型转换器示例 127 7.4 扩展StrutsTypeConverter类 130 7.5 与复杂对象配合使用 134 7.6 与Collection配合使用 137 7.7 与Map配合使用 142 7.8 小结 145 第8章输入验证 146 8.1 验证程序概述 146 8.2 验证程序的配置 147 8.3 Struts内建验证程序 148 8.3.1 required验证程序 149 8.3.2 requiredstring验证程序 150 8.3.3 stringlength验证程序 152 8.3.4 int验证程序 154 8.3.5 date验证程序 156 8.3.6 email验证程序 157 8.3.7 url验证程序 159 8.3.8 regex验证程序 160 8.3.9 expression和fieldexpression验证程序 161 8.3.10 conversion验证程序 164 8.3.11 visitor验证程序 166 8.4 编写自定义的验证程序 173 8.4.1 注册 176 8.4.2 示例 177 8.5 利用Validateable接口实现编程验证 180 8.6 小结 182 第9章消息处理与国际化 183 9.1 地区和Java资源绑定 183 9.2 Struts的国际化支持 185 9.3 text标签 188 9.4 i18n标签 191 9.5 以手动方式选择一个资源包 193 9.6 小结 195 第10章 Model Driven和Preparable拦截器 196 10.1 把动作与模型隔离开 196 10.2 Model Driven拦截器 197 10.3 Preparable拦截器 201 10.4 小结 206 第11章持久层 207 11.1 DAO模式 207 11.1.1 DAO模式的最简单实现 208 11.1.2 使用DAO接口的DAO模式 208 11.1.3 使用Abstract Factory模式的DAO模式 209 11.2 实现DAO模式 209 11.2.1 DAO接口和DAOBase类 210 11.2.2 EmployeeDAO类 213 11.2.3 EmployeeDAOMySQLImpl类 214 11.2.4 DAOFactory类 218 11.2.5 EmployeeManager类 219 11.2.6 运行app11a应用程序 220 11.3 Hibernate 221 11.4 小结 221 第12章文件的上传 222 12.1 文件上传概述 222 12.2 在Struts里上传文件 223 12.3 File Upload拦截器 224 12.4 上传单个文件示例 225 12.5 上传多个文件示例 227 12.6 小结 230 第13章文件的下载 231 13.1 文件下载概述 231 13.2 Stream结果类型 232 13.3 文件下载功能的编程实现 235 13.4 小结 238 第14章提高Struts应用程序的安全性 239 14.1 用户和角色 239 14.2 编写安全策略 240 14.2.1 保护资源 240 14.2.2 指定登录方法 241 14.3 身份验证方法 242 14.3.1 使用基本身份验证方法 243 14.3.2 使用基于表单的身份验证方法 245 14.4 隐藏资源 247 14.5 Struts安全配置 248 14.6 以编程方式提高安全性 250 14.6.1 getAuthType方法 250 14.6.2 isUserInRole方法 250 14.6.3 getUserPrincipal方法 251 14.6.4 getRemoteUser方法 251 14.7 小结 251 第15章防止重复提交 252 15.1 标记管理 252 15.2 使用Token拦截器 253 15.3 使用Token Session拦截器 256 15.4 小结 257 第16章调试与性能分析 258 16.1 debug标签 258 16.2 Debugging拦截器 259 16.3 性能分析 261 16.4 小结 262 第17章进度条 263 17.1 Execute and Wait拦截器 263 17.2 使用Execute and Wait拦截器 264 17.3 使用一个自定义的“等待”页面 265 17.4 小结 266 第18章定制拦截器 267 18.1 Interceptor接口 267 18.2 编写一个自定义拦截器 268 18.3 使用DataSourceInjectorInterceptor拦截器 269 18.4 小结 273 第19章定制结果类型 274 19.1 概述 274 19.2 编写一个自定义的结果类型 274 19.3 使用新的结果类型 277 19.4 小结 279 第20章 Velocity 280 20.1 概述 280 20.2 Velocity隐式对象 281 20.3 标签 281 20.4 Velocity示例 282 20.5 小结 284 第21章 FreeMarker 285 21.1 概述 285 21.2 FreeMarker标签 286 21.3 示例 287 21.4 小结 289 第22章 XSLT结果类型 290 22.1 概述 290 22.2 XSLT结果类型 292 22.3 示例 294 22.4 小结 295 第23章插件 296 23.1 概述 296 23.2 从哪里获得插件 296 23.3 编写一个自定义的插件 296 23.4 使用Captcha插件 297 23.5 小结 300 第24章 Tiles插件 301 24.1 JSP include指令/标签的不足 302 24.2 Tiles布局和定义 303 24.2.1 布局页面 303 24.2.2 Tiles定义 304 24.3 Struts Tiles插件 305 24.4 Struts Tiles示例 306 24.5 小结 309 第25章 JFreeChart插件 310 25.1 JFreeChart API 310 25.1.1 JFreeChart类 310 25.1.2 Plot抽象类 310 25.2 使用标准的插件 311 25.3 使用BrainySoftware JFreeChart插件 313 25.4 小结 315 第26章零配置 316 26.1 准备工作 316 26.2 注解 317 26.2.1 @Result注解 317 26.2.2 @Results注解 318 26.2.3 @Namespace注解 318 26.2.4 @ParentPackage注解 319 26.3 CodeBehind插件 319 26.4 小结 321 第27章 Ajax 322 27.1 Ajax概述 322 27.2 Dojo的事件系统 323 27.3 使用Struts Dojo插件 324 27.4 head标签 324 27.5 div标签 325 27.5.1 示例程序1 326 27.5.2 示例程序2 326 27.5.3 示例程序3 327 27.6 a标签 328 27.7 submit标签 330 27.8 bind标签 331 27.9 datetimepicker标签 333 27.10 tabbedpanel标签 334 27.11 textarea标签 336 27.12 autocompleter标签 337 27.12.1 示例程序1 339 27.12.2 示例程序2 339 27.12.3 示例程序3 340 27.13 tree和treenode标签 341 27.13.1 示例程序1 342 27.13.2 示例程序2 343 27.14 小结 345 附录A Struts配置 346 附录B JSP EL语言 361 附录C Java注解 370

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧