您的位置:首页 > 其它

ssh框架的一些体会

2014-11-23 17:31 183 查看
33-抽取添加与修改JSP页面中的公共代码:1,把公共的代码抽出来2,添加修改使用同一个页面

将他们放到public文件夹

32:使用递归展现添加与修改页面中的树状上级部门列表:

1.无序问题(set集合无序)方法:在类的映射类中的xml中加入order-by属性 

2.数据库的问题(不直接修改session缓存,copy 一份修改)递归:不在页面中写 action中遍历出

29.使用OpenSessionInViewFilter方案解决Hibernate懒加载异常的问题

1,在web.xml中的struts过滤器之前

20_阶段2__补充:Struts2的整体回顾(Action、拦截器、值栈、OGNL表达式、ModelDriven方案等)

a:拦截器处理公共的部分 action 专注响应

valuestacks--map stack--炒作put(key,value) value〈- get(key) actionContext.getcontent().getvalueStack()(action中获取valuestacks的值) result中获取ognl

21_阶段2__改进:CRUD改进1__使用ModelDriven方案:

a:modeldriver封装参数 private role model = new role();public role getModel(){ return model;}

22_传智播客汤阳光OA项目视频__阶段2__改进:CRUD改进2__套用美工写好的页面效果

a:1.修改为webroot的路径:${pageContext.request.contextPath} 2.加上struts的标签 3.加上样式

23.CRUD改进3__添加功能和修改功能使用同一个JSP页面

合并添加,修改 {id==null ?'add' : 'edit'}

24_传智播客汤阳光OA项目视频__阶段2__系统管理模块__部门管理1__实现基本的增删改查功能

a:上级部门(以后解决)1.设计实体,创建Javabean  2.写映射文件 3.加入hibernate的xml 4.分析有几个功能,对应几个请求(增删改查)

5.写action (crud的模板)

public String list() throws Exception{ return "list";}

public String delete() throws Exception{ return "toList";}

public String addUI() throws Exception{ return "saveUI";}

public String add() throws Exception { return "toList";}

public String editUI() throws Exception { return "saveUI";}

public String edit() throws Exception { return "toList";}

6.配置struts的xml 

7.action里面填充代码 实现功能 list<department> department = departmentService。findAll(找Service获取); actionContext.getContext.put("departmentList",departmentList);(放在map中便于获取,放在值栈不好,map中用#获取)

8.创建service类 action中@Resource注入 9.使用modeldriver 实体和表单不太对应 (可以创建新的对象)editUI回显(actionContext.getContext().getValueStack().push(department);
10.实现service

修改页面:修改路径;删除演示js;数据列表循环显示()

25:pass

26:

27:3.删除上级部门 级联下级部门 4.一次显示一层 (1.toplist childlist 2.点击相应的名称 传id) 5.面向对象的查询,写的对象名和属性名

29

34_阶段3__系统管理模块__改进2:在显示层抽取BaseAction

a:1.baseaction继承公共的actionsupport和实现modeldriver的封装 2.使用泛型让子类选择所需要的对象类型 2.1在类中,通过反射获取model的类型 2.2abstract不需要生成实类,子类生成 2.3本子类专注于请求

35.合并service和dao dao层@Deprecated 数据库操作拿session在service里面操作

36.写用户类 一。baseaction<?> 封装表单参数(1.实体(domain)2.新建对象,写到action中)二。增删改查

一、做Action相关的准备:

Action、JSP、配置
二、做Service相关的准备:

接口、实现类、配置
三、填空:

Action方法、Service方法、JSP页面

userAction:hashset初始化的时候就有另外一个集合中的参数 edit:1,是否要准备数据 2.是否要回显

实现一组功能:1,( Action中)添加功能的步骤:
// 1,新建对象并设置属性(在model使用的是实体的情况下,也可以使用model,但需要设置未封装的属性)
// 2,保存到数据库

2,( Action中))修改功能的步骤:
// 1,从数据库中取出原对象
// 2,设置要修改的属性
// 3,更新到数据库

37_阶段3__系统管理模块__用户管理2__测试功能、解决事务的问题、对密码进行MD5摘要

1.删除 // @Transactional注解可以被继承

// @Transactional注解对父类中声明的方法无效 

=========================

权限的使用:

实现方案:权限(表,实体) 基于角色的权限模型 1.一个功能对应一个或两个url; 2.

初始化数据 分配权限 使用权限

39:设计实体 (主键,关联关系,一般属性(URL),特殊属性name(用户观看),parent,childrenL:set<privilege>)自关联,一对多的实体设计

40:实体:javabean,

41_阶段4__权限模块__实现初始化权限数据的功能:默认只需要一边关联即可

43:带表单页面的两个请求 不带的一个请求  action类 方法 页面 配置 

44:注释1:@Controller注解标明该类需要Spring容器自动加载 

注释2:@RequestMapping注解标识该Controller处理来自/menu_creator.do的请求 

spring注解:

@Service用于标注业务层组件

@Controller用于标注控制层组件(如struts中的action)

@Repository用于标注数据访问组件,即DAO组件

@Component泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。

@Autowired 按 byType 自动注入,面 @Resource 默认按 byName 自动注入罢了

默认情况下通过 @Component 定义的 Bean 都是 singleton 的,如果需要使用其它作用范围的 Bean,可以通过 @Scope 注释来达到目标

从 Spring 容器中获取 boss Bean 时,每次返回的都是新的实例了

45.target is null for method hasPrivilegeByName(这个异常) #session.user.hasPrivilegeByName(name) 写方法:在user对象中增加对象#el表达式到valuestack中寻找

48:树状结构 1.用合适的标签 ul 列表 2.合适的图片 3.效果 (自关联)

55:实现序列化的接口 使tomcat关闭重启后还是登陆状态
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: