读书笔记

1、Struts访问资源
2、把静态参数传递给一个动作
3、<result>type属性
4、s:iterator、s:if c:forEach
5、StringBuilder和StringBuffer
6、spring配置拦截器

1、访问资源
(1)通过ServletActionContext对象和实现ServletContextAware,ServletRequestAware,ServletResponseAware,
SessionAware接口

2、把静态参数传递给一个动作
board为动作类的属性
<action name="addBoard" class="boardAction" method="addBoard">
<!-- 把父板块默认为0 -->
<param name="board.parentId">0</param>
<result name="success" type="redirect">
queryBoard.action?params=${board.boardName}
</result>

</action>
3、<result>type属性
Chain 构成一条动作链,前一个动作把控制权转交给后一个动作,而前一个动作的动作状态在后一个动作里扔保持。
Dispatcher是Struts2的默认结果类型
Redirect把用户重定向一个资源,而不是把控制权转交给给资源。
参数传递:
<result name="success" type="redirect">
queryBoard.action?params=${board.boardName}
</result>

把参数传给queryBoard.action方法中获得。
4、s:iterator、s:if
注:var值不能为action类的属性
   <s:iterator value="#request.boards" var="bbs_board" status="s">
    <s:if test="#bbs_board.boardId!=12">
    ${bbs_board.boardName}
    </s:if>
    <s:elseif test="#bbs_board.boardId!=13">
    小说
    </s:elseif>
    <s:else>
    ${bbs_board.boardName}
    </s:else>
    </s:iterator>

//获得一个值
<s:property value="#request.params"/>
//jstl  <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<c:forEach var="bbs_board" items="${boards}">

         ${bbs_board.boardName}

</c:forEach>
5、在JDK5.0中引入StringBuilder类。这个类的前身是StringBuffer,其效率有些低,是线程安全,但允许采用多线程的方式执行增加或删除的操作。
如果所有字符串在一个单线程中编辑,则应该用StringBuilder替代它。

6、spring配置拦截器
调用目标方法前的拦截器
(1)implements MethodBeforeAdvice
public void before(Method arg0, Object[] arg1, Object arg2)
throws Throwable
arg0可以获得方法名和返回类型
arg1方法参数
arg2:arg2.getClass());//拦截的目标对象
(2)implements AfterReturningAdvice
public void afterReturning(Object returnValue, Method arg1, Object[] arg2,
Object arg3)
returnValue目标方法返回值
arg1可以获得方法名和返回类型
arg2方法参数
arg3:arg2.getClass());//拦截的目标对象
(3)implements MethodInterceptor
public Object invoke(MethodInvocation arg0) throws Throwable
//获得参数
// Object[]args=arg0.getArguments();
// for(Object arg:args){
// logger.info(arg.getClass().getName()+":");
// }
logger.info(arg0.getMethod());//获得调用方法
Object  obj= arg0.proceed();//调用目标方法,返回方法值
(4)implements ThrowsAdvice
public void afterThrowing(Exception ex) throws Exception

你可能感兴趣的:(读书笔记)