初学struts2(一)
1.在WEB工程中添加jar包(版本struts-2.1.6)
commons-logging-1.0.4.jar
freemarker-2.3.13.jar
ognl-2.6.11.jar
struts2-core-2.1.6.jar
xwork-2.1.2.jar
2.编写Action类和JSP页面
如:LoginAction.java 部分代码
private String usernmae;
private String password;
(set,get方法)
public String execute(){
return "success";
}
JSP:
<form action="login.action" method="post" >
</form>
使用login.action
3.配置web.xml
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
###:
这个没配置的话,无法找到JSP页面提交的action,404错误(暂时不知道为什么。。。)
struts1里是使用<servlet></servlet>来配置寻找struts-config.xml文件,再在struts-config.xml文件中寻找相应的action
struts2里则使用<filter></filter>,这里叫"拦截器"! 4.配置struts.xml(必须放在src目录下)
<?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">
<!-- START SNIPPET: xworkSample -->
<struts>
<package name="struts2" extends="struts-default">
<action name="login" class="com.test.action.LoginAction">
<result>/result.jsp</result>
</action>
</package>
</struts>
<!-- END SNIPPET: xworkSample -->
###:
这里的<result name="success">/result.jsp</result>根据LoginAction里的execute方法的返回值来自动寻找的,
如果不配置,默认为"success"!这里和struts1是一样的,默认配置都是跳转也就是转发。出错:
Unable to load configuration. - bean - jar:file:/D:/Struts2/workspace/struts2/WebRoot/WEB-INF/lib/struts2-core-2.1.6.jar!/struts-default.xml:46:178
加载不了jar包?按提示应该是加载不了struts2-core-2.1.6.jar!/struts-default.xml,所以就无法读取JSP提交对应的action
难道高版本的有问题,因为自己看的资料是2.0.14版本...还是上网查资料!
解决方法:
在原来加载五个包的基础上,在Struts2的解压缩文件夹内的lib文件夹里, 我们找到下列2个jar : commons-fileupload-1.2.1.jar、commons-io-1.3.2.jar,把他们加载。