• struts入门2


    不同开发人员有不同的习惯, pojo,bean,entity,model 等等,都是指的它~--------实体包名字

    开始

    重点:

    为了有一个String类型的返回值,这个返回值可以自己定义,这个返回值要和struts里对应Action里的一个result的name属性值相同。
    这里是返回值是"diyshow";在执行完ShowTimeAction里的showtime方法后,最后产生的这个返回值"diyshow"会自动跑到struts.xml里面的"showTime"这个Action下面寻找一个name值为"diyshow"的result,找到它,跳转到相应showTime.jsp。

    果然都是:${XXX}会访问对应的Action的 geXXX()方法 ,然后再把这个XX对象通过request.setAttribute("XX", XX 放在"product" 这个key上,这样就方便EL表达式去取出来了

    ================
    因为我测试过 ,假如在对应的Action 做一下手脚的话,请看下图

    而现在假如我在上面基础上 继续把,private Date date ; 改为公有成员

    又成功出现了

    所以这证明了一个流程

    1. 访问路径 /showTime
    2. 所有访问都被struts的filter所拦截,并进入struts的工作流程
    3. 根据配置文件struts.xml, 会执行ShowTimeAction的showtime方法
      4.1. ShowTimeAction通过request.setAttribute("currenTime", currenTime) 放在"currenTime" 这个key上,这样就方便EL表达式去取出来了。似乎只要是这个Action里的属性,他都会放到作用域里
      4.2 在showtime方法中会返回一个String , 在上面例子返回的是 "diyshow"
      5 自动跑到struts.xml里面的"showTime"这个Action下面寻找一个name值为"diyshow"的result,找到它,跳转到相应showTime.jsp。
    4. 在showTime.jsp中,${currenTime}就直接取值了

    我的推测1:只要那个Action里面有什么属性,struts都会帮我们将它放入requsest域里。
    **我的推测2:struts当看到jsp里有${currenTime},然后再访问对应的Action的 getCurrenTime()方法拿到返回的对象,然后再把currenTime对象通过request.setAttribute("currenTime", currenTime)

    严格的说是Action把数据放在了request的setAttribute("product") 上, JSP的EL表达式${product.name} 是从request里取的数据。

    问题:${date}是什么时候创建出来的
    答:通过struts的getData()方法取出来的,或假如是data成员是公有的话,可以直接就拿出
    因为Struts就是这么设计的(无力的回答~)

    问题:为什么${date}会访问对应的Action的 getData()方法
    答:(首先要注意EL表达式从哪些对象中获取数据,有Page、Request、Session……等)在这里EL表达式访问的是当前 request,而不是Action。ShowTimeAction中有一个date属性,Struts2会自动调用 request.setAttribute("date",date)将date对象保存到request中,所以 EL表达式才能取到date对象。我是这么理解的,请大家指教
    因为Struts就是这么设计的(无力的回答~)

  • 相关阅读:
    常用的40个建站代码及使用说明
    vs2008与vs2005的冲突
    ASP调用.net的webservices的实现方法
    Web Development Tools for the Power Developer
    XML Web Service开发实例——通过Windows Forms调用Web Service
    “家贼”倒卖“征途”源代码 13万元卖给识货人
    [轉載]让UpdatePanel支持文件上传
    DB2与Sybase/Oracle/Informix的比较
    網頁打印代碼大全
    完整的网站间共享数据的WebService
  • 原文地址:https://www.cnblogs.com/czy16/p/8874195.html
Copyright © 2020-2023  润新知