Struts2学习笔记(不定期更新)

March 18, 2009 | tags java  struts2  框架  建站  编程   | views
Comments 0

        最近一直在学struts2,为了给以后做网站打下基础。到官网去看文章,内容很多,顾用此日志当作笔记本,记录一下自己的收获。由于之前看了一个电子版的struts2介绍(2.0.x版本),所以以下主要涉及那本书没有讲到的或2.1.x版已经更新的内容。本文内容不保证正确性,并不定期更新,对一切后果不负责!

Get Started文档:

  • <result type="redirectAction">SomeAction</result>中如果SomeAction不存在,则会渲染SomeAction.jsp。
  • 2.1.X版本在<s:url …>中改用var。(2.0.x中用<s:url id="xxx">)

struts-2-spring-2-jpa-ajax文档:

  • 数据库字段映射类需要用@Entity、@Id、@GeneratedValue注解。(这是Hibernate的配置)
  • CRUD服务类需要用@Transactional、@PersistenceContext等注解。(这是Spring注入框架的配置)
  • 配置JPA、Spring、Dojo。(struts2要用到的技术,分别是关于数据库、bean注入、Ajax)

crud-demo-i:

  • <s:action name="department!list" id="allDepartments">来调用某Action。解决了列表显示问题。例如,用#和%{}来用它:<s:select name="gender" list="%{#allDepartments.departments}" /> 。
  • 直接用<s:textfield name="employee.name">传值,struts2会在相应的Action中创建一个Employee类,再调用getEmployee.setName方法。(Note:可以限制哪些东西可以被注入)
  • %{employee.name} 如果没有employee,那么Struts2会实例化一个Employee,然后调用它的getName()。结果还是null,除非有默认值。在<s:textfiled value="…">里像这样用有助于重用表单。
  • 一个例子:<s:select name="gender" list="%{#{'male':'Male', 'female':'Female'}}" />
  • 验证器调用的是Action中的getter,而不是request值。这就是说,验证器调用的是,request值注入Action后,再用getter得到的值。

其他:

  • 在Action之后执行验证器:

    public String intercept(ActionInvocation act) throws Exception {

    //在Action之前执行的代码
    ......
    //开始执行Action
    String result=actionInvocation.invoke();//
    //在Action之后的代码
    ......
    //结束拦截器
    return result;

    }

  •  

未完待续……




发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。