以前就接触过Struts2,现在版本更新至2.1.6,有些改变,可根据struts2附带的实例学习,步骤大同小异,先HelloWorld,登陆,S2SH整合,参看网上很多的文章,总结编写。
[b]1.创建项目,引用基本jar包[/b]
commons-fileupload-1.2.1.jar
commons-logging-1.1.jar
freemarker-2.3.13.jar
ognl-2.6.11.jar
struts2-core-2.1.6.jar
xwork-2.1.2.jar
[b]2.编写配置文件[/b]
在web.xml中添加
在src目录中增加文件struts.xml
[b]3.MyHello.java [/b]
在index.jsp中body部分中添加${hello }即可实现
[b]关于零配置[/b]
虽然叫零配置,但有些配置还需要struts.xml
详细说明请参看[url]http://javeye.iteye.com/blog/358744[/url]
在原有的基础上增加struts2-convention-plugin-2.1.6.jar
编写ShowResult.java
在WEB-INF目录下新建page文件夹添加result.jsp,body中加入${result }即可实现
访问http://localhost:8000/ZeroS2/show-result!show即可,提示如果类名带Action,则默认会将Action自动去掉,并将字母小写
[b]1.创建项目,引用基本jar包[/b]
commons-fileupload-1.2.1.jar
commons-logging-1.1.jar
freemarker-2.3.13.jar
ognl-2.6.11.jar
struts2-core-2.1.6.jar
xwork-2.1.2.jar
[b]2.编写配置文件[/b]
在web.xml中添加
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
在src目录中增加文件struts.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">
<struts>
<package name="struts2" extends="struts-default">
<action name="MyHello" class="com.action.MyHello">
<result name="success">/index.jsp</result>
</action>
</package>
</struts>
[b]3.MyHello.java [/b]
package com.action;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class MyHello extends ActionSupport {
public String execute() throws Exception {
HttpServletRequest request = ServletActionContext.getRequest();
String str = "Hello World";
request.setAttribute("hello", str);
return SUCCESS;
}
}
在index.jsp中body部分中添加${hello }即可实现
[b]关于零配置[/b]
虽然叫零配置,但有些配置还需要struts.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">
<struts>
<!--访问 action的扩展名为空-->
<constant name="struts.action.extension" value="" />
<!--更改 action访问成功后默认访问WEB-INF目录下的content 使其访问page下文件-->
<constant name="struts.convention.result.path"
value="/WEB-INF/page" />
<!--action的名字根据大小写用-分开-->
<constant name="struts.convention.action.name.separator" value="-" />
<!--更改默认的配置,在带有web和action包下寻找action-->
<constant name="struts.convention.package.locators"
value="web,action" />
</struts>
详细说明请参看[url]http://javeye.iteye.com/blog/358744[/url]
在原有的基础上增加struts2-convention-plugin-2.1.6.jar
编写ShowResult.java
package com.web.action;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.ServletActionContext;
import org.apache.struts2.convention.annotation.Result;
import org.apache.struts2.convention.annotation.Results;
import com.opensymphony.xwork2.ActionSupport;
@SuppressWarnings("serial")
@Results( { @Result(name = ActionSupport.SUCCESS, location = "result.jsp", type = "dispatcher") })
public class ShowResult extends ActionSupport {
private static final String SUCCESS = "success";
public String show() {
HttpServletRequest request = ServletActionContext.getRequest();
request.setAttribute("result", "this is result");
return SUCCESS;
}
}
在WEB-INF目录下新建page文件夹添加result.jsp,body中加入${result }即可实现
访问http://localhost:8000/ZeroS2/show-result!show即可,提示如果类名带Action,则默认会将Action自动去掉,并将字母小写