传智播客——BBS版面分类

经过前面两天的BBS学习,相信大家眼里都出现了一个清晰的MVC模式架构。接下来的3天,我们将在汤老师的带领下对一些技术细节做探讨,并复习前面StrutsHibernate的知识,一起完成ITCASTBBS的版面分类模块和用户注册模块,精彩正在进行中······

1.       表单的服务器端和客户端验证

1)服务器端验证

分析:CategoryAction继承了DispatchActionCategoryAction中的Action有的需要验证表单,有的则不需要验证表单,所以应当在配置文件中将validate属性设为false,自定义方法对CategoryAction中需要进行表单验证的Action进行验证。

1)  ActionForm中重写validate()方法

2)  BaseAction中自定义方法validateFailed()对需要验证表单的Action进行验证,返回Boolean

3)  CategoryAction中根据Boolean取值选择不同的返回页面

2)客户端验证

这里使用js和正则表达式进行简单验证,不需要进行服务器端的校验。

2.       分类移动的思路

1)        每个分类有不同的order的值

2)        添加时要指定order值,order值不能重复,order值要最大

3)        显示时按order的值升序排列:在CategoryDaoImpl中重写findAll()方法

4)        上移:跟上面的分类的order交换值;下移:跟下面的分类的order交换值

5)        上移操作的HQL语句:

        session.createQuery(

      "from Category c where c.order < ? order by c.order desc")

      .setParameter(0,category.getOrder())

      .setFirstResult(0)

      .setMaxResults(1)

      .uniqueResult();

3.       版面管理

版面管理和分类管理类似,实现流程也类似,可以参考分类管理进行。这里我主要就一些不同于分类管理的细节进行总结归纳。

1)  显示层使用Struts标签编写下拉列表框的代码:

<html:select property="categoryId" styleClass="inw_widen1">

      <html:optionsCollection name="categories" value="id" label="name"/>

</html:select>

2)        验证表单时,如果验证失败,此时返回的页面应当是addUI,而不能是add,因为addUI可以为add页面准备数据.

3)        版面移动的时候,由于保存Forum对象的Set是无序的,无法保证版面在显示层出现的顺序,这里需要使用LinkedHashSet

4)        页面中有大量重复的代码,可以把重复代码抽取出来成一个单独的页面(jspf),使用静态包含(include)导入

好了,版面完成了。明天开始继续用户模块的编写,大家敬请关注!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值