一struts2项目的结构
1 手动添加Struts2.0的jar包。
a 在struts2-blank-2.0.8.war中web-inf/web.xml
b lib文件夹下的。jar文件考到项目中
c 将classes下的struts.xml拷贝到项目的src中
二
1 编写action类(类似struts1中dispathAction)
public class **Action()
{
属性
方法
public String 方法名()
{
处理请求
//若有错误
HttpServletRequest request=ServletActionContext.getRequest();
request.setAttribute("errMsg", this.getText("资源文件中key值"));
}
}
2 配置
在struts中配置action
//若是以**.do和**.action提交
<constant name="struts.action.extension" value="do,action"></constant>
//利用资源文件Action要继承actionSupport
<constant name="struts.custom.i18n.resources" value="ApplicationResources"/>
<constant name="struts.multipart.parser" value="jakarta"></constant>//需要上传文件
<constant name="struts.multipart.maxSize" value="209715200"></constant>设定上传文件大小的上限
<constant name="struts.i18n.encoding" value="gbk"></constant>//设定请求的编码,处理中文文件名
<package name="pet" extends="struts-default">//设定包若有多个包则加 namespace=/包名
<action name="*_*" class="web.{1}Action" method="{2}">
<result name="标示">/转移页面路径</result>
</action>
</package>
三在action中操作会话和请求对象
1.用actionContext
ActionContext ctx = ActionContent.getContext()
ActionContext存放的是Action中用到的一切数据,struts2保证了actionContex的线程安全
存取请求数据
ctx.put(key,value) ==>request.setAttritbute(key,value)
ctx.get(key) ==>request.getAttritube(key)
存取会话数据
ctx.getSession.put(key,value) ==>session.setAttribute(key.value)
ctx.getSession().get(key)==>session.getAttribute(key)
存取应用数据的做法
ctx.getApplication().get(key)
ctx.getApplication().put(key,value)
补充,存取请求参数 //请求参数返回的是数组
ctx.getParameters().get(key)[0]
2 利用servletActionContext得到对应的请求会话对象
得到请求对象
ServletActionContext.getRequest()
得到会话
ServletActionContext.getRequest().getSession()
得到Application
ServletActionContext.getServletContext()