谢玉龄吧 关注:1贴子:66
  • 7回复贴,共1

struts学习日记

只看楼主收藏回复

1、ACTION类(actionServlet)首先在web项目里的web.xml里进行注册,web.xml会在项目加载时同时加载:
<servlet>
<servlet-name>repairOrderServlet</servlet-name>
<servlet-class>com.tcl.scf.web.servlet.RepairOrderSaveServlet</servlet-class>
</servlet>
2、Struct的XML 文件控制着URL对控制器ACTION里的方法映射(actionServlet会通过这个XML把用户的请求发送到对应的控制器action方法里):
URL:${base}/balance/queryCanbeBalanceOrderList.action
配置: <action name="queryCanbeBalanceOrderList" class="com.tcl.scf.web.balance.BalanceOrderAction" method="queryCanbeBalanceOrderList">
<result type="json">
</result>
</action>
ACTION:public class BalanceOrderAction{}
方法:BalanceOrderAction{
public String queryCanbeBalanceOrderList(){}
}


1楼2018-02-11 16:06回复
    1、ActionServlet就是control的Action类,里面的各个方法就是Structs的URL映射的方法Actionform,
    最常见的就是前段文件的<form>标签里的action="URL"对应的方法
    2、Action 是业务逻辑控制器
    3、execute方法是在action里没有写其他方法的情况下默认调用的方法,在不重写的情况下是return success;
    问题:actionforward到底怎么用,为什么我的struts.xml里没有使用这个类


    2楼2018-02-11 17:26
    回复
      使用Struts2的四个步骤:
      一、导入struts2相关包
      二、建立struts2 Action类实现execute方法
      三、配置Action类访问路径:
      ①创建struts2核心配置文件:struts.xml(核心配置文件名字和位置固定,必须放在src下面)
      ②引入dtd约束
      <?xml version="1.0" ...>
      <!DOCTYPE struts PUBLIC ...
      ③action配置:
      <package>
      <action>
      </aciton>
      <package>
      四、配置过滤器filter


      3楼2018-03-01 09:25
      收起回复
        导入Struts2jar包的时候,出现了很多问题,现在这个是成功运行的jar包列表。
        注意过滤器版本!老版使用:
        <filter-class> org.apache.struts2.dispatcher.FilterDispatcher </filter-class>
        2.2之后使用:
        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
        还有要注意新版本的jar包之间的互补与老版本之间的冲突,来回解决这些问题真是要人老命了!


        4楼2018-03-09 15:12
        回复
          Struts2 的配置
          Struts2核心配置文件
          1、位置和名字是固定的,在src目录下,名字必须是struts.xml
          2、配置文件主要有三个标签:package、action、result
          ·标签package
          ①类似代码中包,区分不同的action,要配置action必须要先写package标签,在package里才能配置action。
          ②package标签里的属性:
          1)name属性 name属性值与功能没有关系,只是用来区分不同的action,但是不同的package的name必须不同。
          2)extends属性 extends属性值是固定的,必须是extends="struts-default",写了这个属性之后,在package里配置的类都具有action功能。
          3)namespace属性 package标签里的namespace属性值与action里的name属性值构成访问路径值。
          ·标签action
          ①action标签配置action访问路径
          ②action标签属性
          1)name属性
          package的namespace属性值与action的name属性值构成访问路径。
          package标签里能写多个action,但是action的name属性值不能相同
          2)class属性
          action 的全路径
          3)method属性
          可以让action执行action中定义的其他方法
          ·标签result
          ①根据action方法的返回值,配置到不同的路径
          ②result标签属性
          1)name属性
          必须和action的返回值相同
          2)type属性
          配置到达路径的方法(转发or重定向),type属性默认值为转发
          转发:转发到达路径,浏览器的地址栏不会改变


          5楼2018-03-13 22:12
          回复
            3修改struts2的默认常量
            1)常用方式
            在struts.xml里进行配置
            <constant name = "struts.XX.XX" value = "XX"></constant>
            2)不常用方式
            ·在src下面创建struts.properties文件,进行修改
            ·在web.xml里进行配置
            4介绍最常用的常量
            常量constant: struts.i18n.encoding=UTF-8
            ①表单提交数据到action中,action可以获得表单提交的数据
            ②表单提交数据会有中文,中文就会产生乱码问题,解决:
            Post提交直接设置编码
            Get提交做编码转换
            ③如果action获取表单通过Post方式,中文乱码问题能直接通过常量constant解决
            Struts2分模块开发
            在src的每个包里新建一个xml文件,然后配置以上标签的配置,最后再回到struts.xml里进行引用:
            <include file="路径.xml"></include>


            6楼2018-03-13 22:12
            回复
              Action的编写方式:三种
              一、创建一个普通类,不继承任何类和不实现任何接口,基本不使用。
              二、创建一个类,实现接口Action
              这种方式必须实现Action接口的方法,可以使用Action的常量,较少使用。
              三、创建一个类,继承类ActionSupport
              ActionSupport 实现了Action接口,所以继承AcitonSupport就拥有接口的方法,这种方式最好。


              7楼2018-03-15 12:46
              回复