Netbeans6.5+Struts2.1.6+Tomcat 6配置详解~

原创作品,转载请注明: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

Leave a Reply

Your email address will not be published.