struts2学习笔记(二)

11课
具体视图的返回由用户定义的Action来决定。
具体的手段是根据返回的字符串找到相应的配置项,来决定视图的内容。
具体Action的实现可以是一个普通的Java类,里面有public String execute方法即可或者实现Action接口
不过最常见的是从ActionSupport继承,好处在于可以直接使用Struts2封装好的方法。
----
MyEclipse修改jsp默认编码方式:
window->preferences->jsp|Encoding选择Chinese,National Standard->OK
----
三种action
1.普通类,有一个execute方法
2.实现Action接口
3.实现ActionSupport接口(企业开发中都用这个)
----
12课
URL->读取struts.xml->寻找对应namespace和Action,若无对应则返回到web.xml,返回默认jsp
-----
如何写绝对路径?
统一使用绝对路径(在jsp中用request.getContextRoot方式拿到webapp的路径,或者使用myeclipse经常用的,指定basePath)。
方法一:
jsp页头加上这段代码:(MyEclipse会默认加上)
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
需要写绝对路径的地方可以这样写:
<a href="<%=basePath %>index.jsp ">index.jsp</a>
方法二:
<head></head>之间加上代码:<base href="<%=basePath%>">(MyEclipse会默认加上)
其他地方该怎么写就怎么写。
-----
13课
action执行的时候并不一定执行execute方法,
可以再配置文件中配置Action的时候用method=来指定要执行的方法(不推荐),也可以在URL地址中动态指定(动态方法调用DMI)(推荐)
----
14课
通配符,可以将配置降到最低。
如此,不过一定要遵循“约定优于配置”的原则。
若有多个可以匹配的action,则匹配最精确地一个。
例如:
<struts>
   <constant name="struts.devMode" value="true"/>
   <package name="actions" namespace="/actions" extends="struts-default">
       <action name="student*" class="yzh.action.StudentAction" method="{1}">
          <result>
              /Student{1}_success.jsp
          </result>         
       </action>
      
       <action name="*_*" class="yzh.action.{1}Action" method="{2}">
          <result>
              /{1}_{2}_success.jsp
          </result>
       </action>
   </package>
</struts>
----
15课
用action的属性接收参数
使用action属性接收参数<a href="user/user!add?name=a&age=8">添加用户</a>
用DomainModel接收参数
使用Domain Model接收参数<a href="user/user!add?user.name=a&user.age=8">添加用户</a>
用ModelDriven接收参数
18课
中文怎么办?
有中文,method就尽量不要用get,而用post。
xml配置中用FilterDispatcher。
19课
<s :fielderror fieldName="" theme=""></s :fielderror>
<s : property value=""/>
<s : debug></s debug>

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值