原创作品,转载请注明:http://www.coder4.com/archives/605
前言:
忽忽,花了一个小时时间,终于成功配置了第一个struts2项目~碰到的主要问题记录如下:
1、struts2版本2.1.6比较高,同书上记载的不同,要额外加入两个jar
2、发现action的映射中有一些保留字不能用
3、struts2.xml的位置要注意
OK,开始吧。
一、在NB6.5中准备struts2类库
准备工作,下载最新版本struts2(2.1.6),解压缩。
打开netbeans6.5,工具->库,新建库,如图1.
然后添加jar文件,把七个文件添加进来
"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"
commons-fileupload-1.2.1.jar
commons-io-1.3.2.jar
特别是后两个。。。没有哪本书提到要加,是高版本所必须加的,否则tomcat都启动不了。
点击 确定 完成。
二、新建项目,选择Web项目,
Tomcat6
不用任何框架
这是因为当前NB6.5只支持struts1不支持2,而2和1是有天壤之别的。。
如图2,完成即可。
三、导入库(一个库=一堆包)
在“库”中右键,添加库struts2(即第一步设置好的库)
四、设置struts2过滤器(filter),这个任务呢就是让jsp/servlet把工作交给struts2做
web.xml中添加如下的过滤器和映射,其实就是交给struts2处理*.action的url:
<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>
当然了,也可以用向导完成~
五、在源文件夹(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>
</struts>
六、创建Action
package actions;
import com.opensymphony.xwork2.ActionSupport;
public class UserAction extends ActionSupport
{
String msg;
public String getMsg()
{
return msg;
}
public void setMsg(String m)
{
msg = m;
}
public String execute()
{
if(msg.equals("struts2"))
{
return "OK";
}
else
{
return "ERROR";
}
}
}
七、jsp文件(视图)
在jsp文件夹下
新建index.jsp
如下:
<%@page contentType="text/html" pageEncoding="GBK"%>
<%@taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GBK">
<title>JSP Page</title>
</head>
<body>
<h1>Hello World!</h1>
<s:form action="loginUser">
<s:textfield name="msg"></s:textfield>
<s:submit value="提交"></s:submit>
</s:form>
</body>
</html>
红色部分是重点,有那句才可以在jsp中识别struts2标签。。
loginAction就是Action的名字咯
然后是两个结果视图:
ok.jsp
<%@page contentType="text/html" pageEncoding="GBK"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GBK">
<title>JSP Page</title>
</head>
<body>
<h1>OK</h1>
</body>
</html>
error.jsp
<%@page contentType="text/html" pageEncoding="GBK"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GBK">
<title>JSP Page</title>
</head>
<body>
<h1>ERROR</h1>
</body>
</html>
七、在struts.xml中配置action的信息
在<struts>
</struts>中加入
<package name="default" extends="struts-default">
<action name="loginUser" class="actions.UserAction">
<result name="OK">/jsp/ok.jsp</result>
<result name="ERROR">/jsp/error.jsp</result>
</action>
</package>
package无意义,将来可以拓展用做namespace
action的name属性对应表单的action,class就是Action的类啦~
result是根据不同的返回结果,映射到不同的视图~我感觉很好的MVC结构哦
八、部署项目
部署项目,如果正常的话。。。就会启动啦~咔咔
如下图:
index.jsp
失败后(没有输入struts2):
成功后(输入struts2):
原创作品,转载请注明:http://www.coder4.com/archives/605