struts1.x

摘要: 要想使用Struts,至少要依靠两个配置文件:web.xml和struts-config.xml。其中web.xml用来安装Struts框架。而struts-config.xml用来配置在Struts框架中要使用的资源。如Formbean、Action、插件等。如果使用了某些插件,如Validator、Tiles等。还可能需要其他的配置文件。虽然在前面的文章中已多次使用了这两个配置文件,但都是分散介绍的。因此,在本文将对这些配置进行一下总结和回顾,以使读者对Struts的配置有一个更清醒的认识。  阅读全文

摘要: Tiles提供的模板机制可以最大限度地避免重复编写代码。实际上,Tiles模板就是的JSP页面,只是在这种JSP页面中使用Tiles标签代替确定不了的内容(相当于占位符),也就是需要在开发人员使用模板时来确定的内容。除了这一点,Tiles模板页面和普通的JSP页面完全相同。  阅读全文

摘要: Tiles框架是Struts的一个插件。我们可以使用Tiles框架来进行页面布局设计。Tiles框架提供了一种模板机制,它可以将网页内容和布局分离,并允许先创建模板,然后在页面中再插入具体的内容。  阅读全文

摘要: 与LookupDispatchAction、DispatchAction不同,MappingDispatchAction类并不通过请求参数来指定动作,而是将一个Struts动作对应于一个Action方法。下面的例子演示了如何使用MappingDispatchAction类来将Struts 动作和Action方法相对应。  阅读全文

摘要: 虽然LookupDispatchAction类可以很好地处理拥有多个提交按钮的Form,但是必须要和属性文件相关联,而且还得在getKeyMethodMap方法中进行key和Action方法的映射,使用起来十分不方便。从Struts1.2.9开始,加入了另一个用于处理多个提交动作的EventDispatchAction类。这个类也是DispatchAction的子类,它在使用上要比LookupDispatchAction类容易的多。EventDispatchAction类的基本原理是通过元素的parameter属性指定多个动作,中间用逗号(,)分隔。每个动作实际上就是标签的property属性值。这样EventDispatchAction类就可以根据每个标签的属性值来确定用户按的是哪个提交按钮了。  阅读全文

摘要: 有时在HTML form中需要提供多个提交按钮,这时LookupDispatchAction类就派上用场了。LookupDispatchAction是DispatchAction的子类,用于处理客户端代码中有一个Form含有多个提交按钮的情况。  阅读全文

摘要: 在使用Struts动作时,每一个Action都需要编写一个类,并且要在struts-config.xml进行配置。这对于一个拥有很多Action的Web程序来说,工作量是非常大的。为此,Struts提供了DispatchAction类,这个类允许将一个Action作为一个方法来调用。在Web浏览器中通过请求参数来指定要调用的动作。  阅读全文

摘要: 在本文介绍了如何使用IncludeAction和ForwardAction类包含和转入Web资源。这两个类与和标签的功能相同,但Struts建议使用这两个类来实现包含和转入web资源的功能。  阅读全文

摘要: 我们曾经在《Struts1.x系列教程(13):国际化》一文中讲过如何通过编程的方式实现多语言的Web页面。在本文中,我们会介绍另外一种实现多语言Web页面的方法。这种方式与《Struts1.x系列教程(13):国际化》一文中所介绍的方法的区别就是无需编写一行代码就可以完成多语言的设置。  阅读全文

摘要: 除了标准的org.apache.struts.action.Action类外,在Struts中还提供了另外7个Action类来完成特殊的工作。本文及后面的文章中将介绍这些Action类的用法。  阅读全文

摘要: 虽然ActionForm功能强大,但有些时候使用起来有些麻烦。如每建立一个用户录入界面(JSP页面),就得建立一个ActionForm子类来和这个页面对应。当然,我们可以采用嵌套属性从一定程度上弥补这个问题。但是在建立新的用户录入界面时,仍不可避免地要建立新的ActionForm子类。在Struts1.2.6及以后的Struts版本中提供了一种动态Form的技术。使得不用再建立新的ActionForm就可以封装用户提交的数据。实际上,这种技术将定义ActionForm子类的工作变成了编写XML文件的工作。  阅读全文

摘要: 对于一个面向全球的Web应用程序,按着不同国家的要求显示相关信息(称为国际化)显得尤为重要。国际化的工作非常复杂和繁琐。因为要翻译很多Web界面,信息格式等。然而,Struts为我们提供了完成国际化工作的更容易的方式。在本文将介绍如何使用Struts来简化国际化的工作。  阅读全文

摘要: 在《Struts1.x系列教程(10):Validator验证框架入门》一文中给出的例子中的name、age和email都是简单的属性,如果是嵌套的属性(也就是一个属性的数据类型是另外一个带有属性的类),可以使用圆点(.)符号来访问。如我们可以通过设置元素的property属性值为“employee.salary”来验证employee属性中的salary属性。  阅读全文

摘要: Validator框架是一个Struts插件,最初由David Winterfeldt设计并实现。Validator框架从Struts 0.5时代就可以使用,但那时Validator框架只是被捐助的一个jar包。Apache组织为了使开发人员更方便地使用Validator框架,决定从Struts1.1开始,将Validator框架作为Struts的一部分同Struts一起发布。  阅读全文

java struts1_struts1.x相关推荐

  1. springboot实现SSE服务端主动向客户端推送数据,java服务端向客户端推送数据,kotlin模拟客户端向服务端推送数据

    SSE服务端推送 服务器向浏览器推送信息,除了 WebSocket,还有一种方法:Server-Sent Events(以下简称 SSE).本文介绍它的用法. 在很多业务场景中,会涉及到服务端向客户端 ...

  2. Java 获取当前时间之后的第一个周几,java获取当前日期的下一个周几

    Java 获取当前时间之后的第一个周几,java获取当前日期的下一个周几 //获得入参的日期 Calendar cd = Calendar.getInstance(); cd.setTime(date ...

  3. 在k8s中使用gradle构建java web项目镜像Dockerfile

    在k8s中使用gradle构建java web项目镜像Dockerfile FROM gradle:6-jdk8 AS build COPY --chown=gradle:gradle . /home ...

  4. Java | kotlin 手动注入bean,解决lateinit property loginService has not been initialized异常

    kotlin.UninitializedPropertyAccessException: lateinit property loginService has not been initialized ...

  5. SpringBoot项目使用nacos,kotlin使用nacos,java项目使用nacos,gradle项目使用nacos,maven项目使用nacos

    SpringBoot项目使用nacos kotlin demo见Gitte 一.引入依赖 提示:这里推荐使用2.2.3版本,springboot与nacos的依赖需要版本相同,否则会报错. maven ...

  6. OpenAPI使用(swagger3),Kotlin使用swagger3,Java使用swagger3,gradle、Maven使用swagger3

    OpenAPI使用(swagger3) demo见Gitte 一.背景及名词解释 OpenAPI是规范的正式名称.规范的开发工作于2015年启动,当时SmartBear(负责Swagger工具开发的公 ...

  7. Gradle错误提示:Java home supplied via ‘xxx.xxx.xxx‘ is invalid

    Gradle错误提示:Java home supplied via 'org.gradle.java.home' is invalid 描述:在使用idea采用gradle进行依赖的管理功能,当想切换 ...

  8. 查看Hotspot源码,查看java各个版本源码的网站,如何查看jdk源码

    java开发必知必会之看源码,而看源码的第一步则是找到源码

  9. java基本类型转换,随记

    java基本类型转换: double double 转 long double random = Math.round(Math.random()*10000); long l = new Doubl ...

最新文章

  1. ISelectionSet接口
  2. 华为鸿蒙生态创新,鸿蒙生态不断扩大,华为创新性地提出“全屋智能”理念
  3. python 深拷贝_详解python的复制,深拷贝和浅拷贝的区别
  4. OpenCV超分辨率基准测试
  5. 虚拟机下CentOS7开启SSH连接
  6. Hibernate的fetch
  7. mockito 静态方法_Mockito模拟静态方法– PowerMock
  8. 【C语言项目合集】这十个入门必备练手项目,让C语言对你来说不再难学!
  9. Java反编译工具-luyten
  10. CentOS 7安装MinDoc文档系统
  11. iosem.us app install nds.html,夭寿啦!用NDS4iOS无需越狱即可在iOS玩NDS游戏
  12. Ubuntu安装docker
  13. 135微信编辑器html模式,135微信编辑器如何使用 135微信编辑器使用方法教程
  14. Why WebRTC|前世今生
  15. 移动应用中的第三方SDK隐私合规检测,早知道
  16. 淘宝H5商品详情数据解析接口sign算法接口代码教程
  17. 计算机与软件技术系毕业设计(论文)实施意见-计算机毕业设计论文怎么写
  18. 【Kaggle】Titanic - Machine Learning from Disaster(二)
  19. 【论文学习】Towards Accurate Oriented Object Detection in Aerial Images with Adaptive Multi-level Feature
  20. 如何使用Redis实现电商系统的库存扣减

热门文章

  1. Navicat工具获取操作数据库和表的SQL语句
  2. flash动画制作作品_flash施工动画制作应该展现哪些内容
  3. python tfidf特征变换_使用sklearn提取文本的tfidf特征
  4. springboot 接口404_资深架构带你学习Springboot集成普罗米修斯
  5. c语言程序中必不可少的,C语言程序设计(第3章程序控制语句)2
  6. MySQL 基础———— UNION 联合查询
  7. Spring Boot————AOP入门案例及切面优先级设置
  8. 长沙医学院学位计算机考试内容,湖南长沙医学院2017年9月计算机等级考试报名时间...
  9. python默认安装位置_如何更改python中pip的默认安装路径
  10. 华为鸿蒙mota30手机多少钱,华为Mate30系列基本确认:麒麟985、鸿蒙系统、5G,价格满意!...