OA中总结:s:select,关于使用modelDriven,项目分层,@Transactional,jspf,各个层上配置注解交给spring管理的方法,简单的OGNL表达式写法

简介: %<s:select> list:需要进行迭代的list集合 listKey:需要提交的值 listValue:需要在页面上显示的值============================优化1.ActionAction中存在重复的代码 从DepartmentAction/RoleAction/UserAction中抽取一个公共的BaseAction. 1.BaseAction中使

%
<s:select>
 list:需要进行迭代的list集合
 listKey:需要提交的值
 listValue:需要在页面上显示的值
============================
优化
1.Action
Action中存在重复的代码
 从DepartmentAction/RoleAction/UserAction中抽取一个公共的BaseAction.
 1.BaseAction中使用泛型,泛型的具体类型(Class)通过在构造方法中得到.
 如果model为null,就用具体类型newInstance()生成model.为什么model可能不为null?

2.Dao和Service==>3层改成两层
去掉dao层的具体的实现类xxxDaoImpl.而让service直接操作数据库
 service中直接使用session对数据库进行操作.
 1.service接口可以继承BaseDao
 2.ServiceImpl可以继承BaseDaoImpl
 注意:在BaseDaoImpl上添加@Transactional注解

 @Transactional可以被继承
 如果没有这个注解,在调用getCurrentSession()获取session时,会报错:
  No Hibernate session bounded to ...

3.jsp
 /WEB-INF/jsp/public/common.jspf
 1.抽取公共的js文件生成公共的common.jspf,然后在页面中用<%@ include file="/WEB-INF/jsp/public/common.jspf"%>调用(静态包含和动态包含)
  common.jspf中除了包含公共的js外,还包含公共的自定义标签的导入
 2.addUI.jsp和editUI.jsp==>改成save.jsp
 一般情况下,添加页面和修改页面可以使用同一个.
  1.<s:hidden name="id"/>
  2.<s:form action="departmentAction_%{id == null ? 'add' : 'edit'}"/>
  最后修改struts.xml中<result>对应的jsp页面

==================================================
完成增删改查功能的步骤
一、做action相关的准备
 1.创建xxxAction extends BaseAction
 2.定义出Action中的方法,要写出方法名、作用、返回值
 3.创建出所用到的jsp页面(内容先不写)
 4.配置:
  1.Spring==>在xxxAction上添加注解@Controller和@Scope
  2.Struts2==>在struts.xml中添加
  <action name="" class="" method="">..</action>
二、做service相关的配置
 1.创建接口XxxService继承BaseDao
 2.创建实现类XxxServiceImpl继承BaseDaoImpl
 3.配置:在XxxServiceImpl上添加注解@Service
 4.声明:在BaseAction上声明各个service作为成员变量,并在变量上添加注解@Resource
三、填空
 1.Action方法
  .......
 2.新增的的Service方法
 3.jsp页面的内容
  1.拷贝静态页面中的方法到jsp中
  2.<%@ include file="/WEB-INF/jsp/public/common.jspf"%>
  3. ../替换成${pageContext.request.contextPath}/
  4.改页面内容(使用自定义标签)
   1.列表页面
   <s:iterator value="..">
   <s:a action=".." onclik="">
   注意:onclick中的c小写
   2.表单页面(saveUI.jsp)
   <s:form action="departmentAction_%{id==null?'add':'edit'}">
    <s:hidden name="">
    <s:textfield>
    <s:textarea>
    <s:select name="" list=".." listKey=".." listValue="..">
    <s:radio name="gender" list="#{'男':'男','女':'女'}" listKey="" listValue="">
     其中:#{'男':'男','女':'女'}可以简写成#{'男','女'}
    <s:checkbox>
    <s:submit>
   </s:form>

   <select multiple="true" size="10">对应的struts标签
   <s:select name="" mutiple="true" cssClass="" list="#roleList" listKey="id" listValue="name">

未完成的任务
 // TODO
 Tasks

目录
相关文章
|
1月前
|
XML Java 数据格式
SpringBoot入门(8) - 开发中还有哪些常用注解
SpringBoot入门(8) - 开发中还有哪些常用注解
49 0
|
1月前
|
Java 开发者 微服务
手写模拟Spring Boot自动配置功能
【11月更文挑战第19天】随着微服务架构的兴起,Spring Boot作为一种快速开发框架,因其简化了Spring应用的初始搭建和开发过程,受到了广大开发者的青睐。自动配置作为Spring Boot的核心特性之一,大大减少了手动配置的工作量,提高了开发效率。
47 0
|
18天前
|
前端开发 Java Spring
Spring MVC核心:深入理解@RequestMapping注解
在Spring MVC框架中,`@RequestMapping`注解是实现请求映射的核心,它将HTTP请求映射到控制器的处理方法上。本文将深入探讨`@RequestMapping`注解的各个方面,包括其注解的使用方法、如何与Spring MVC的其他组件协同工作,以及在实际开发中的应用案例。
33 4
|
1月前
|
XML JSON Java
SpringBoot必须掌握的常用注解!
SpringBoot必须掌握的常用注解!
60 4
SpringBoot必须掌握的常用注解!
|
18天前
|
前端开发 Java 开发者
Spring MVC中的请求映射:@RequestMapping注解深度解析
在Spring MVC框架中,`@RequestMapping`注解是实现请求映射的关键,它将HTTP请求映射到相应的处理器方法上。本文将深入探讨`@RequestMapping`注解的工作原理、使用方法以及最佳实践,为开发者提供一份详尽的技术干货。
53 2
|
18天前
|
前端开发 Java Spring
探索Spring MVC:@Controller注解的全面解析
在Spring MVC框架中,`@Controller`注解是构建Web应用程序的基石之一。它不仅简化了控制器的定义,还提供了一种优雅的方式来处理HTTP请求。本文将全面解析`@Controller`注解,包括其定义、用法、以及在Spring MVC中的作用。
40 2
|
21天前
|
消息中间件 Java 数据库
解密Spring Boot:深入理解条件装配与条件注解
Spring Boot中的条件装配与条件注解提供了强大的工具,使得应用程序可以根据不同的条件动态装配Bean,从而实现灵活的配置和管理。通过合理使用这些条件注解,开发者可以根据实际需求动态调整应用的行为,提升代码的可维护性和可扩展性。希望本文能够帮助你深入理解Spring Boot中的条件装配与条件注解,在实际开发中更好地应用这些功能。
26 2
|
22天前
|
JSON Java 数据格式
springboot常用注解
@RestController :修饰类,该控制器会返回Json数据 @RequestMapping(“/path”) :修饰类,该控制器的请求路径 @Autowired : 修饰属性,按照类型进行依赖注入 @PathVariable : 修饰参数,将路径值映射到参数上 @ResponseBody :修饰方法,该方法会返回Json数据 @RequestBody(需要使用Post提交方式) :修饰参数,将Json数据封装到对应参数中 @Controller@Service@Compont: 将类注册到ioc容器
|
22天前
|
XML Java 数据格式
SpringBoot入门(8) - 开发中还有哪些常用注解
SpringBoot入门(8) - 开发中还有哪些常用注解
36 2
|
1月前
|
存储 运维 安全
Spring运维之boot项目多环境(yaml 多文件 proerties)及分组管理与开发控制
通过以上措施,可以保证Spring Boot项目的配置管理在专业水准上,并且易于维护和管理,符合搜索引擎收录标准。
41 2