struts学习

在myeclipse中创建test-struts工程


1.拷贝struts-2.3.16.3-all\struts-2.3.16.3\apps\struts2-blank\WEB-INF\lib下的包
2.在web.xml中加入过滤器,所有的请求被过滤
3.配置struts2的配置文件,现在src目录中创建struts.xml
4.创建helloaction,返回success
4.1 为helloaction写execute()方法
4.2 为struts.xml中配置action


5.可以为一个action写多个方法进行对应,这样可以减少action类的数量,但无法减少配置的数量


 <package name="default" namespace="/" extends="struts-default">
    <action name="hello11" class="com.test.struts2.HelloAction" method="hello1">
    <result name="success">/success1.jsp</result>
    
      <action name="hello22" class="com.test.struts2.HelloAction" method="hello2">
    <result name="success">/success2.jsp</result>
    </action>
   </package> 
   
   在用浏览器访问时,可以在后面呢直接输入action的name代替success1.jsp或其他。如:http://localhost:8080/Test-struts/hello
 另一种方式,只写一个action:  
  <package name="default" namespace="/" extends="struts-default">
    <action name="hello11" class="com.test.struts2.HelloAction">
    <result name="success1">/success1.jsp</result>
    <result name="success2">/success2.jsp</result>
   </package> 
   访问:http://localhost:8080/Test-struts/user:method

   

最后一种方式是通配符。


穿插dtd加载方法:window->prefenrences->xml->catlog->add (选择本地的dtd文件,选择publicID,输入-//Apache Software Foundation//DTD Struts Configuration 2.0//EN)
确定后,重启myeclipse。编辑xml文件时,就出现了提示功能。我这里犯了个错,就是喜欢用文本编辑器打开xml文件,内容一直是一个颜色。后来换用

myeclipse web xml editor,就出现了彩色文本,这样阅读方便。


jsp页面中添加标签:
<%@taglib prefix="s" uri="/struts-tags">


action给页面传值的三种方式:
1)通过action中相应的get和set方法
2)通过ActionContext完成值的传递
ActionContext.getContex().put("aaa",12345);
3)利用servlet的API传值(ServletContext.getRequest().setAttribute())
jsp页面中读取的方式有(与上对应):正则表达式(${aaa})或者用标签(<s:property value="#aaa"/>注意有#号哦,ActionContext中传值方式都要#号)
或者利用ServletContext(<s:property value="#request.hello"/>,hello为action)


页面给action传值的方法:浏览器输入值http://localhost:8080/Test-struts/user_add?name=abc&password=123
通过get和set方法,浏览器的值直接传给action


6.struts2中常用的常量介绍

//指定默认编码集,作用于 HttpServletRequest的setCharacterEncoding方法和freemarker,velocity的输出

<constant name="struts.i18n.encoding" value="UTF-8/GBK"/>

//指定需要struts2处理的请求后缀,该属性的默认值是action,即所以的匹配.action 的请求都由struts2处理.

如果用户需要指定多个请求后缀,则多个后缀之间用英文逗号隔开.

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

//设置浏览器是否缓存静态内容,默认值为true(生产环境下使用),开发阶段最好
<constant name="struts.serve.static.browerCache" value="false"/>

//当struts的配置文件修改后,系统是否自动重新加载该文件,默认值为false(生产环境下使用),开发阶段最好打开.

<constant name="struts.configuration.xml.reload" value="true"/>

//开发模式下使用,这样可以打印出更详细的错误信息

<constant name="struts.devMode" value="true"/>

//默认的视图主题

<constant name="struts.ui.theme" value="simple"/>

//与Spring集成时,指定由spring负责action对象的创建

<constant name="struts.objectFactory" value="spring"/>

//设置struts2是否支持动态方法调用,该属性的默认值是true,如果需要关闭动态方法调用,则可设置该属性为false

<constant name="struts.enable.DynamicMethodInvocation" value="false"/>

 //上传文件的大小限制

<constant name="struts.multipart.maxSize" value="10701096"/>最大为5M(上传的文件的总大小,并不是单个文件的大小)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值