2018年05月学习札记

-->jsp include的使用方式

关于navigation.jsp、关于footer.jsp的文件引入,可能是每一个项目都必须要用到jsp include的,那么引入时应该是动态引入还是静态引入呢,可能会各有不同。

静态引入,即不需要传入参数的那种:

<!-- 这是静态的引入文件,如果需要动态的引入文件,可以考虑使用jsp include的形式 -->  
<%@ include file="../common/navigation.jsp" %>
<%@ include file="../common/footer.jsp" %>

如果需要动态引入,以传入相关参数,确定某一项为active的时候,则可以:

 <jsp:include page="../common/navigation.jsp" flush="true">  
     <jsp:param name="index" value="${baseInfo.index} " />  
 </jsp:include>  

navigation.jsp页面可以通过这样的方式获取到传入的参数:

<input type="hidden" id="index" value="${param.index}"/>  

无论是静态引入,还是动态引入,都可以帮助我们减少代码的冗余和重复,这个也是师兄一直和我说的问题,要谨记,要谨记。

静态引入相对而言效率会更高,动态引入则胜在灵活,具体要根据需要来进行选择。

-->jsp include的实现方式

静态引入和动态引入在实现的时候会有所不同。

主页面index.jsp静态引入页面navigation.jsp时,会在编译阶段之前将navigation.jsp文件中的内容包含进index.jsp,而后编译成一个index.java、一个index.class,navigation.jsp内不需要声明contentType;

主页面index.jsp动态引入页面navigation.jsp时,会各自编译成java文件和class文件,即一个index.java、一个index.class、一个navigation.java、一个navigation.class,在index,java中会多出一句对navigation.java的引用,此时需要对navigation.jsp根据需要指定contentType。

-->Session的使用方式

可能需要校验Session是否过期、向Session中添加一些内容、从Session中移除一些内容、获取Session中的一些内容,整理一下:

<!-- 为session设置一个过期时间 -->
<session-config>  
    <session-timeout>10</session-timeout>  
</session-config>  
//向Session中添加一些内容
ServletActionContext.getRequest().getSession().setAttribute("userid", userid);
ServletActionContext.getRequest().getSession().setAttribute("nickname", nickname);
ServletActionContext.getRequest().getSession().setAttribute("authoinfo", authoinfo);
ServletActionContext.getRequest().getSession().setAttribute("headimg", headimg);
//获取Session中的一些内容
String userid = ServletActionContext.getRequest().getSession().getAttribute("userid");
String nickname = ServletActionContext.getRequest().getSession().getAttribute("nickname");
String authoinfo = ServletActionContext.getRequest().getSession().getAttribute("authoinfo");
String headimg = ServletActionContext.getRequest().getSession().getAttribute("headimg");
//从Session中移除一些内容
ServletActionContext.getRequest().getSession().removeAttribute("userid");
ServletActionContext.getRequest().getSession().removeAttribute("nickname");
ServletActionContext.getRequest().getSession().removeAttribute("authoinfo");
ServletActionContext.getRequest().getSession().removeAttribute("headimg");

-->action后缀由action改为tong

Struts2中的Action默认后缀为action,直接访问一个Action时,必须写成actionName.action的形式(如超链接)。

使用Form标签时,需要注意,在Form的action属性中不需要加.action后缀,action后缀会自动补全。

如果想把action后缀改成其他的,如tong,需要把web.xml文件中的过滤器修改为.tong。

这里定义了哪些链接会被Struts2框架捕获,如下:

  <filter-mapping>
   <filter-name>struts2</filter-name>
   <url-pattern>*.tong</url-pattern>
  </filter-mapping>

而后在WEB-INFclasses下添加一个文本文件:struts.properties,里面添加一行:struts.action.extension=tong,此文件如果在MyEclipse中,可以放在src目录下。

同时,也可以在struts.xml中进行设置:

<struts>
      ........

      <constant name="struts.action.extension" value="tong"/>
</struts>

 

 

感谢:https://blog.csdn.net/xueyepiaoling/article/details/6258369等等的分享~

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值