1、web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
<display-name>HelloWorldStruts2</display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
2、struts2.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<!-- url-action-method(exacute())-result(view) -->
<struts>
<!-- namespace URL的逻辑路径 -->
<package name="test" namespace="/first" extends="struts-default">
<!-- action中name可以支持通配符 如hello_* method='{1}'-->
<action name="hello" class="com.pluto.action.HelloWorld">
<!-- 可以有多个result 根据action方法返回值与指定的name值匹配
返回相应视图 -->
<result name="success_say">/helloworld.jsp</result>
</action>
<!-- Add your actions here -->
</package>
</struts>
3、action类
package com.pluto.action;
import com.opensymphony.xwork2.ActionSupport;
public class HelloWorld extends ActionSupport
{
private String uname;
@Override
public String execute() throws Exception
{
return "success_say";
}
public String getUname()
{
return uname;
}
public void setUname(String uname)
{
this.uname = uname;
}
}
热门评论
局部结果:<action>中的<result>
<result name ='' type=''>...</result>
全局结果:<global-result>
<result>
<param name='location'>/{1}.jsp</param> 物理视图资源
<param name='parse'>true/false</param> OGNL的支持
</result>
</global-result>[也是要在package标签内]
D、多个struts配置文件
引入配置文件 对不同配置文件的管理 如(用户action 商品action 日志等)
<include file="userAction.xml"></indclude>
E、默认action
<default-action-ref name="other"></default-action-ref>
<action name="other"><result>/bug.jsp</result></action>
F、struts的后缀
配置中增加 <constant name="struts.action.extenxion" value="true"></constant>
还可以在struts.properties中配置,如果多个用逗号隔开 do,action,deal
还可以在web.xml中配置,在配置过滤器类增加 <init-param>(<param-name><param-value>)
G、接受参数
-action类封装属性(获取form表单提交的参数一致)
-action类注入对象(该对象封装的属性对应要获取的form中控件的name参数)
-action实现ModelDriven<!!!推荐使用>
H、处理结果类型
二、进一步应用struts2
A、访问servlet API(request、response、servletcontext)
actioncontext 、实现**Aware接口 、ServletActionContext
B、url--action的图映射
可以使用action所在的package 的 namespace命名空间 namespace="/test/hello"
url可访问:..8080/webapp/test/hello/xx.action
这是对action的一种管理
C、动态方法调用
一个action对应多个请求处理,避免action太多
-指定method属性:action中 存在多个处理请求的方法(add() update() )
在action配置 method="add"
-感叹号方式 :struts.xml中开启 <constant name="struts.enable.DynamicMethodInvocation" value="true"></constant>
<result>/result.jsp</result>
<result name="add" >/add.jsp</result>
<result name="update">/update.jsp</result>
url访问..8080/webapp/test/hello/helloworld!add.action
-使用通配符:!!!推荐使用
<action name="hellworld_*" method="{1}"...
<result>/result.jsp</result>
<result name="add">/{1}.jsp</result>