zoukankan      html  css  js  c++  java
  • Struts2的Preparable接口 .

    Struts2的Action在实现com.opensymphony.xwork2.Preparable接口后,就可以重写prepare()方法
    此时在Action中,prepare()方法的执行点是在:setXxx()execute()的执行之前


    比如需求:在执行Action的方法前,接收前台隐藏域传过来的值,再根据该值执行相应逻辑
    如前台传过来ID,我们根据ID查找数据库对应的用户信息,再跳转到modify()中修改信息
    但实际的运行过程中发现,通过Debug断点调试得知prepare()方法接收到的ID值是零
    即前台隐藏域中的ID值没有传过来,事实上问题就出在默认的defaultStack拦截器栈
    其实defaultStack无法接收prepare()需要的数据,而应借助paramsPrepareParamsStack拦截器栈
    事实上使用prepare拦截器之前,应先调用params拦截器,prepare()才能接收到表单数据
    基于这个思路,于是可以通过各种手段将params拦截器放置在prepare拦截器之前即可
    比如将defaultStack中的所有拦截器拷贝struts.xml的我们自定义的myStack拦截器栈
    再按照paramsPrepareParamsStack拦截器栈中的paramsprepare顺序修改二者位置即可

  • 相关阅读:
    bzoj2115: [Wc2011] Xor
    bzoj2844: albus就是要第一个出场
    hdu3949
    bzoj2487: Super Poker II
    bzoj3456: 城市规划
    bzoj3992: [SDOI2015]序列统计
    ubuntu 使用命令行登录oracle
    ubuntu安装docker
    linux查询硬件信息
    ubuntu oracle 环境搭建
  • 原文地址:https://www.cnblogs.com/mount/p/2249788.html
Copyright © 2011-2022 走看看