struts2简记

struts.xml:
<struts>
  <package name="HelloWorld" extends="struts-default">
    <action name="product-input">
      <result>/WEB-INF/pages/product-input.jsp</result>
    </action>
    <action name="product-detail" class="com.struts2.Product" method="save">
      <result name="detail">/WEB-INF/pages/product-detail.jsp</result>
    </action>
  </package>
</struts>

package的namespace属性默认是"/"
action有一个默认的class属性值和一个默认的method属性值
result的name属性值默认是success,type属性值默认是dispatcher
WEB-INF下的资源服务器内部转发可以访问,直接通过URL访问不到

action VS Action
action:代表一个struts2请求。
Action类:能够处理struts2请求的类。
struts2会为每一个请求创建一个Action实例,即是线程安全的。

在Action中访问WEB资源:
  有两种方式:
  1.和Servlet API解耦的方式:只能访问有限的Servlet API对象,且只能访问有限的方法。
    > 使用ActionContext
    > 实现XxxAware接口(若一个Action类中有多个方法,则建议使用该方法)
  2.和Servlet API耦合的方式:可以访问更多的Servlet API对象,且可以调用其原生的方法。
    > 使用ServletActionContext
    > 实现ServletXxxAware接口

struts2常量:
    <constant name="struts.action.extention" value="action,do"></constant>

ActionSupport:
    ActionSupport类是默认的Action类,若某个action节点没有配置class属性,而ActionSupport即为待执行的Action类,而
execute方法即为要执行的action方法。

result:
    常用的有四种type:dispatcher(默认)、redirect、chain、redirectAction

通配符映射匹配:*、{0}、{1}

动态方法调用: struts.enable.DynamicMethodInvocation = false

值栈:
  1.可以从ActionContext中获取值栈对象
  2.值栈分为两个逻辑部分
    > Map栈:实际上是OgnlContext类型,是个Map,也是ActionContext的一个引用。可以从中获得requestMap,sessionMap,applicationMap,
    > 对象栈:实际上是CompoundRoot类型,是一个使用ArrayList定义的栈。

struts2利用s:property标签和OGNL表达式来读取值栈中的属性值
    1.值栈中的属性值:
        > 对象栈:对象栈中某一个对象的属性值
        > Map栈: request,session,application的一个属性值或一个请求参数的值

struts2自动把Action对象放入值栈中
    放入的时间点为;struts2终将调用Action类的action方法之前

struts2通用标签:
    <s:property>:
    <s:url>:
    <s:set>:向page、request、session、application域对象中加入一个属性值。
    <s:push>:把一个对象在标签开始后压入到值栈中,标签结束时弹出值栈。
    <s:if>、<s:elseif>、<s:else>
    <s:iterator>、<s:sort>、<s:a>、<s:date>

struts2表单标签:
    struts2表单标签能进行回显:利用了值栈

ModelDriven接口、paramsPrepareParams拦截器

关于PrepareInterceptor拦截器(Preparable接口)
    Preparable接口通常情况下要跟ModelDriven一起用,prepare方法的主要作用:为getModel方法准备model的。
    若Action实现了Preparable接口,则Struts2尝试执行prepare[ActionMethodName]方法,若prepare[ActionMethodName]不存在,
则尝试执行prepareDo[ActionMethodName]方法。若都不存在,则都不执行。
    若PrepareInterceptor的alwaysInvokePrepare属性为false,则Struts2将不会调用实现了Preparable接口的Action的prepare方法。

struts2拦截器是可插拔的,拦截器是AOP(面向切面编程)的一种实现。
内容概要:该研究通过在黑龙江省某示范村进行24小时实地测试,比较了燃煤炉具与自动/手动进料生物质炉具的污染物排放特征。结果显示,生物质炉具相比燃煤炉具显著降低了PM2.5、CO和SO2的排放(自动进料分别降低41.2%、54.3%、40.0%;手动进料降低35.3%、22.1%、20.0%),但NOx排放未降低甚至有所增加。研究还发现,经济性和便利性是影响生物质炉具推广的重要因素。该研究不仅提供了实际排放数据支持,还通过Python代码详细复现了排放特征比较、减排效果计算和结果可视化,进一步探讨了燃料性质、动态排放特征、碳平衡计算以及政策建议。 适合人群:从事环境科学研究的学者、政府环保部门工作人员、能源政策制定者、关注农村能源转型的社会人士。 使用场景及目标:①评估生物质炉具在农村地区的推广潜力;②为政策制定者提供科学依据,优化补贴政策;③帮助研究人员深入了解生物质炉具的排放特征和技术改进方向;④为企业研发更高效的生物质炉具提供参考。 其他说明:该研究通过大量数据分析和模拟,揭示了生物质炉具在实际应用中的优点和挑战,特别是NOx排放增加的问题。研究还提出了多项具体的技术改进方向和政策建议,如优化进料方式、提高热效率、建设本地颗粒厂等,为生物质炉具的广泛推广提供了可行路径。此外,研究还开发了一个智能政策建议生成系统,可以根据不同地区的特征定制化生成政策建议,为农村能源转型提供了有力支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值