`
ihuashao
  • 浏览: 4704903 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

简化Spring(4)--View层

阅读更多
作者:江南白衣

人生像个舞台,请良家少女离开。
同样的,Freemarker和Velocity爱好者请跳过本篇。与弃用webwork而单用Spring MVC Controller接口的理由一样,Freemarker本来是一样好东西,还跨界支持jsp的taglib,而且得到了WebWork的全力支持,但为了它的非标准化,用户数量与IDE的缺乏,在View层我们还是使用了保守但人人会用,IDE友好的JSP2.0 配合JSTL。

对于B/S结构的企业应用软件来说,基本的页面不外两种,一种是填Form的,一种是DataGrid 数据列表管理的,再配合一些css, js, ajax的效果,就是View层要关注的东西了。

1. JSP 2.0的EL代替<c:out>
JSP2.0可以直接把EL写在html部分,而不必动用<c:out>节点后,老实说,JSP2.0+JSTL达到的页面效果,已不比Velocity相差多少了。
<p>{goods.name}</p>
代替
<p><c:outvalue="{goods.name}"/></p>

(除了EL里面不能调用goods的函数,sun那帮老顽固始终坚持JSTL只能用于数据显示,不能进行数据操作,所以不能调用bean的get/set外的方法)

2. 最懒的form 数据绑定

Spring少得可怜的几个tag基本上是鸡肋,完全可以不要。 Spring的Tag主要用来把VO的值绑到input框上。但是,和Struts一样,需要逐个Input框绑定,而且语法极度冗长,遇到select框还要自己进行处理.....典型的Spring Sample页面让人一阵头晕.

jodd的form tag给了我们懒人一个懒得多的方法,只要在<form>两头用<jodd:form bean="myVO"></jodd:form>包住,里面的所有input框,select框,checkBox...统统自动被绑定了,这么简单的事情,真不明白struts,spring为什么不用,为了不必要的灵活性么?

<form>
<jodd:formbean="human">
<inputtype="text"name="name">
<inputtype="radiobox"name="sex"value="man">
<selectname="age">
<optionvalue="20">20</option>
<optionvalue="30">30</option>
</select>
</jodd:form>
</form>


不过,jodd有个致命弱点是不能绑定内嵌对象的值。比如Order(订单)对象里有个Customer(顾客)对象,jodd就不能像 struts,spring一样用如下语法绑定:
<inputname="customer.customerNo">

这是因为它的beanUtils比Jakata Common弱,用了一个错误的思路的缘故。 动用beanUtils修改一下就可以了,修改后的源码可以在这里下载

3. DataGrid数据列表

DisplayTag和ValueList都属于这种形式的Tag Library。但最近出现的Extreme Table是真正的killer,他本身功能强大不说,而且从一开始就想着如何让别人进行扩展重载,比如Extend Attributes机制就是DisplayTag这样的让千人一面者不会预留。


4.css, javascript, ajax
天下纷扰,没有什么特别想讲想推荐的,爱谁谁吧。Buffalo, DWR, Scriptaculous, Prototype, AjaxTags, AjaxAnywhere, Rico, Dojo, JSON-RPC,看着名字就头痛。

相关文章
简化Spring(1)--配置文件
简化Spring(2)--Model层
简化Spring(3)--Controller层
简化Spring(4)--View层

分享到:
评论

相关推荐

    Spring框架(spring-framework-5.2.6.RELEASE)的jar包

    Web-Servlet模块是Spring MVC的基石,提供了模型-视图-控制器(Model-View-Controller)架构,使得开发Web应用程序更为简单。Web模块则提供了基础的Web上下文,适合非MVC的Web应用程序。 4. **AOP**:AOP模块提供了...

    spring-framework-master

    5. **MVC(Model-View-Controller)模块**:Spring MVC是Spring框架的一部分,提供了一种用于构建Web应用的模型-视图-控制器架构。 6. **Test模块**:提供了对JUnit和TestNG的支持,方便进行单元测试和集成测试。 ...

    spring-web-5.2.3.RELEASE和spring-webmvc-5.2.3.RELEASE

    Spring Web MVC模块(spring-webmvc-5.2.3.RELEASE.jar)是Spring框架中用于构建MVC(Model-View-Controller)架构的Web应用程序的核心部分。它为Web开发提供了一种强大且灵活的模型绑定、数据验证、异常处理和视图...

    spring4-mvc-hibernate4

    标题“spring4-mvc-hibernate4”表明这是一个关于Spring 4和Hibernate 4集成的项目或者教程,重点在于如何在Web应用中利用Spring MVC作为控制层框架,与Hibernate ORM工具协同工作来处理数据持久化。 描述中的...

    spring-framework-5.3.20

    3. **Web**:Spring Web模块提供了将Spring应用整合到Web环境中的基础,包括MVC(Model-View-Controller)框架,用于构建高性能的Web应用。 4. **AOP(Aspect Oriented Programming)**:面向切面编程模块,允许...

    spring4-springmvc-hibernate4框架组合

    它采用了Model-View-Controller(MVC)设计模式,将业务逻辑、用户界面和数据处理分离,提高代码的可维护性。SpringMVC通过DispatcherServlet接收HTTP请求,然后调度处理器(Controller),处理器处理请求后返回...

    spring-framework-2.5-rc2-with-dependencies\spring-framework-2.5-rc2\spring-framework-2.5-rc2docs

    它与流行的MVC框架如Struts进行了更紧密的集成,提供了模型-视图-控制器(Model-View-Controller,MVC)的实现,简化了Web应用的开发。同时,2.5版本增强了Servlet API的支持,可以直接利用Servlet 2.5规范的新特性...

    spring-framework-5.0.2.RELEASE官方完整包加官方文档

    Spring Framework的核心特性包括依赖注入(Dependency Injection, DI)、面向切面编程(Aspect-Oriented Programming, AOP)、模型-视图-控制器(Model-View-Controller, MVC)架构模式,以及对Java EE标准和第三方...

    spring-tool-suite-3.9.6.RELEASE-e4.9.0-win32.zip

    此外,Spring还提供了MVC(Model-View-Controller)架构,用于构建Web应用,以及Spring Data用于数据库操作,Spring Security用于权限管理和认证。 压缩包子文件的文件名称列表中提到的"sts-bundle"通常包含了完整...

    官方原版完整包 spring-framework-5.3.3.RELEASE.zip

    Spring MVC是Spring框架的一部分,提供了一种用于构建Web应用的MVC(Model-View-Controller)模式实现,支持RESTful风格的URL设计和数据绑定。 **spring-5.3.3-docs.zip** 包含了Spring框架的官方文档,这对于学习...

    spring-framework-5.3.23 源码

    在Web开发领域,Spring MVC是Spring Framework的一部分,提供了一个强大的MVC(Model-View-Controller)架构。它负责接收HTTP请求,处理业务逻辑,更新模型数据,并将结果呈现给视图。Spring MVC的松耦合设计使得...

    Spring4-Struts2-Hibernate4 CRUD Demo

    Struts 2是一个基于MVC(Model-View-Controller)设计模式的Web应用框架,它极大地简化了Java Web应用的开发。在CRUD操作中,Struts 2处理HTTP请求,调用相应的Action,然后根据结果返回对应的视图。它的拦截器机制...

    spring-5.3.9-dist.zip

    在Web层,Spring MVC(Model-View-Controller)是一个强大的MVC框架,用于构建高性能、灵活的Web应用程序。它提供了请求处理、视图解析、模型绑定等功能,与其他Spring组件紧密集成,如Spring Security用于安全控制...

    struts2-spring-plugin-2.2.1.jar

    Struts2 是一个基于MVC(Model-View-Controller)设计模式的Java Web开发框架。它提供了强大的控制层,帮助开发者构建可维护、可扩展的Web应用。Struts2的核心功能包括:Action映射、结果映射、拦截器机制、强大的...

    官方原版spring-framework-4.3.18.RELEASE.zip

    Spring Framework支持多种开发模式,比如模型-视图-控制器(Model-View-Controller,MVC)架构,用于构建Web应用。Spring Data提供了一组模块,简化了与各种数据存储的交互,包括JDBC、ORM框架如Hibernate和MyBatis...

    Spring4-Struts2-Hibernate4 CRUD Demo_5

    【Spring4-Struts2-Hibernate4 CRUD Demo_5】是一个综合性的开发示例,它展示了如何在Java Web应用程序中整合三大主流框架:Spring 4、Struts2和Hibernate4,进行基本的数据创建(Create)、读取(Read)、更新...

    参照阿里druid整理druid-spring-boot-starter的demo

    stat-view-servlet: enabled: true login-username: admin login-password: admin ``` 并在`src/main/webapp/WEB-INF/web.xml`中添加Servlet映射,或者在Spring Boot 2.x中通过`@WebMvcConfigurer`实现。 4. ...

    最新版完整包 spring-5.3.9.RELEASE-dist.zip

    6. **Web 模块**:Spring Web 模块包括 MVC(Model-View-Controller)框架,用于构建 web 应用。Spring MVC 提供了强大的视图解析、参数绑定、异常处理等功能,并与 RESTful 风格的开发无缝对接。 7. **Spring Boot...

    struts2-spring-plugin-2.3.4.jar

    在Java Web开发中,这两个框架经常一起使用,Spring 提供了依赖注入(DI)和面向切面编程(AOP)等功能,而 Struts 2 则是一个强大的MVC(Model-View-Controller)框架,负责处理用户请求和业务逻辑。 Struts 2 和 ...

    官方原版完整包 spring-framework-5.2.14.RELEASE-dist.zip

    4. **Web**:Spring MVC(Model-View-Controller)是Spring框架的一部分,用于构建Web应用程序。它提供了一个灵活的模型视图分离机制,使得控制器可以处理请求,服务层处理业务逻辑,而视图负责展示结果。 5. **...

Global site tag (gtag.js) - Google Analytics