struts2获取参数,解决乱码
<br />Struts2获取参数,跳转,中文乱码 <br />Struts2中获取参数 <br />1..类ActionContext。可以将这个类看成是一个容器,实际上它是一个map,这个类封装了parameter , session,application,本地化信息。类中提供方法 <br />getContext():用来获取ActionContext的对象 <br />getParame
Struts2获取参数,跳转,中文乱码
Struts2中获取参数
1..类ActionContext。可以将这个类看成是一个容器,实际上它是一个map,这个类封装了parameter , session,application,本地化信息。类中提供方法
getContext():用来获取ActionContext的对象
getParameters():获取传递过来的所有的参数,
getSession():这个方法实际上是获得session对象,但是struts2中对这个进行了再次 封装成map对象,map的key为session中的key,map的value为session 中的value。
getApplication():同session一样。获得application对象。
2.类ServletActionContext。这个类是ActionContext的子类。通过这个类的
getRequest(),和getResponse()方法可以获得 HttpServletRequest和HttpServletResponse对象,有了request和response 就能够像struts1中获取其他的任何对象了。
3.通过属性直接填充
在struts1中能够通过form直接填充。在struts2中更加直接简单,我们只需要在action处理类中加上属性 属性的名称和所获取form的元素名称一样即可实现填充。Struts2中还有一个特性,就是属性不需要手动进行保存到作用域中,它会将属性自动保存进request的作用域中。
4.属性赋值的第二种表现形式
我们用struts实现的三层都是用到了实体类,我们的目的是将数据保存进实体的JavaBean中然后进行操作,这里如果一个form可能出现上百个参数,如果每个属性都去写那将很繁琐也很浪费时间,所以我们可以直接在属性的位子放一个封装了所有属性的对象。然后在页面对这个对象进行填充,struts2会自动将这个对象放进 request的作用域中。
Struts中页面的跳转
Struts1中页面跳转是用一个forward标签在配置文件中配置即可,struts2和struts1大同小异,在Struts.xml文件的 <Action>标签的内部配置 <result name="index">/index.jsp</result> 当在action的处理方法中返回的是String类型的,这里如果想要跳转到根目录下的index.jsp页面中只需要返回 return "index" 即可。默认的跳转方式是转发,如果想把跳转方式改为重定向 则 <result name="index" type="redirect">/index.jsp</result>
有时想从一个action方法中跳转到另一个action中 。假设类Test1 实现Action接口 , 类Test2 继承Actionsupport类,两者都是Action。 Test1中有 方法 execute.Test2中有function2. 两者间相互跳转如下:
Test1的execute 到 Test2的function2
<result name="demo" type="redirect">
Test2!function2.action
</result>
Test2的fucntion2到Test1的execute方法中
<result name="demo" type="chain">
Test1.action
</result>
中文乱码问题
在struts2中解决中文乱码问题非常简单。只需要在struts.xml中的<struts>的标签中添加 子标签 <contant name="struts.i18n.encoding" value="gbk"></contant>
在struts2中 可以在src目录下添加 名称为struts.properties的配置文件,可以将在struts.xml中的一些全局变量放在整合各配置文件中。比如可以将 上面的转换中文的代码放进 struts.properties文件中,在 struts.properties配置文件中的格式是 key=value. 所以可以将上面的代码 写成 struts.i18n.encoding=gbk 放进 资源文件中。
更多推荐
所有评论(0)