structs环境搭建

(1)<s:fielderror />放在JSP中,如果没在web.xml中配置filter相关内容,会有The Struts dispatcher cannot be found.从而显示报错。

HTTP Status 500 - An exception occurred processing JSP page /regist.jsp at line 36

主要还是因为缺乏导入的包,对于console中的missing,not found和add这些关键字都需要注意,会提示需要导入的包。

(2)需要导入的包

(3)struts2.5.5,其web.xml的配置如下。

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
    xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
    http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  <display-name></display-name>
  <welcome-file-list>
    <welcome-file>login.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>

其中filter-class的值在struts2中配置如下,否则出错:

  <filter>
      <filter-name>struts2</filter-name>
      <filter-class>
          org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter
      </filter-class>
  </filter>

(4)struts.xml的配置如下:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
    <constant name="struts.i18n.encoding" value="gb2312"></constant>
    <package name="shop" namespace="/"  extends="struts-default">
        <action name="login" class="com.wss.action.LoginAction">
            <result name="success" type="chain">show</result>
            <result name="error">/login.jsp</result>
        </action>
        <action name="regist" class="com.wss.action.RegistAction">
            <result name="success">/login.jsp</result>
            <result name="error">/resist.jsp</result>
        </action>
        <action name="show" class="com.wss.action.ShowAction">
            <result name="success">/suc.jsp</result>
            <result name="error">/error.jsp</result>
        </action>
        <action name="car" class="com.wss.action.CarAction">
            <result name="success">/car.jsp</result>
        </action>
    </package>

</struts>    

(5)还有log4j2.xml的配置,但是我现在还不知道这个是做什么用的额。

<?xml version="1.0" encoding="UTF-8"?>

<Configuration status="WARN">

  <Appenders>

    <Console name="Console" target="SYSTEM_OUT">

      <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>

    </Console>

  </Appenders>

  <Loggers>

     <Logger name="com.demo.NamedHierarchy" level="trace">

       <AppenderRef ref="Console"/>

</Logger>

<Logger name="com.demo" level="debug">

       <AppenderRef ref="Console"/>

</Logger>

    <Root level="error">

      <AppenderRef ref="Console"/>

    </Root>    

  </Loggers>

</Configuration>

(6)整个项目代码的布局结构是如下:

(7)一个Action的实例:

package com.wss.action;

import com.opensymphony.xwork2.ActionSupport;
import com.wss.Dao.School;
import com.wss.Dao.User;
import com.wss.Dao.UserDao;

public class RegistAction extends ActionSupport{

    public RegistAction()
    {
        System.out.println("Initialization RegistAction....");
    }

    private User user =new User();
    //private User user;
    public User getUser() {
        System.out.println("Getting the getUser");
        return user;
    }

    public void setUser(User user) {
        System.out.println("Setting the setUser");
        this.user = user;
    }

    private School school;

    public School getSchool() {
        System.out.println("Getting the getSchool");
        return school;
    }

    public void setSchool(School school) {
        System.out.println("Setting the setSchool");
        this.school = school;
    }

    private String company;
    public void setCompany(String company)
    {
        System.out.println("Setting the company");
        this.company=company;
    }

    public String execute() throws Exception{
        UserDao ud =new UserDao();

        System.out.println("The company is "+this.company+" The name is "+this.user.getName()+" The phone is "+this.user.getAddress());
        System.out.println("The school name is "+this.school.getName()+" The city is "+this.school.getCity()+" The department is "+ this.school.getDepartment());

        //if(ud.regist(user)!=0){

            this.addFieldError("success", "注册成功");
            return SUCCESS;
        //}
        //this.addFieldError("error", "注册失败");
        //return ERROR;

    }

}

(8)其中regist.sjp的代码如下:

<%@ page language="java" import="java.util.*" pageEncoding="gbk"%>
<%@ page contentType="text/html;charset=gbk"%>
<%@ taglib prefix="s" uri="/struts-tags" %>

<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>"> 

    <title>京东商城注册页面</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

    <%
        request.setCharacterEncoding("gbk");
     %>
  </head>

  <body>
           <center>
               <form action="regist" method="post">

                   用户名:<input type="text" name="user.name"/><br>
                   密&nbsp;&nbsp;码:<input type="password" name="user.password"/><br>
                   手&nbsp;&nbsp;机:<input type="text" name="user.phone" /><br>
                   地&nbsp;&nbsp;址:<input type="text" name="user.address"/><br>

                   公&nbsp;&nbsp;司: <input type="text" name="company"/> <br>

                   学&nbsp;&nbsp;校:<input type="text" name="school.name"/>
                   城&nbsp;&nbsp;市:<input type="text" name="school.city" />
                   院&nbsp;&nbsp;系:<input type="text" name="school.department" />

                   <table>
                    <tr>
                        <td><input type="submit" value="注册"/></td>
                        <td><input type="reset" value="重置" ></td>
                    </tr>
                </table>
               </form>
            <s:fielderror />
           </center>
  </body>
</html>
时间: 2024-12-26 20:03:15

structs环境搭建的相关文章

Spring1:Spring简介、环境搭建及源码下载

框架学习前言 这个模块是对于Java框架的学习,主要就是Spring.Hibernate.Ibatis,框架的学习我是这么想的: 1.简单介绍框架,主要是从网上借鉴一些重点 2.尽量说明清楚框架的使用方法以及细节点 3.尽量以自己的理解讲清楚Spring中的一些源代码 Spring是什么 Spring是一款为了解决企业应用开发的复杂性而创建的轻量级Java框架.框架的主要优势之一就是其分层架构,分层架构允许使用者选择哪一个组件,同时为J2EE应用程序开发提供集成的框架.从简单性.可测试性和松耦合

Spring1:Spring简介、环境搭建、源码下载及导入MyEclipse

框架学习前言 这个模块是面向Spring的,Spring的学习我是这么想的: 1.简单介绍Spring,主要是从网上借鉴一些重点 2.尽量说明清楚Spring的使用方法以及细节点 3.尽量以自己的理解讲清楚Spring中的一些源代码 Spring是什么 Spring是一款为了解决企业应用开发的复杂性而创建的轻量级Java框架.框 架的主要优势之一就是其分层架构,分层架构允许使用者选择哪一个组件,同时为J2EE应用程序开发提供集成的框架.从简单性.可测试性和松耦合的角度而 言,任何Java应用都可

一、环境搭建

1 更新到最新版本的pip(这是安装python扩展包的一个插件)命令如下: python -m pip install --upgrade pip 2 使用pip安装virtualenv,命令 pip install virtualenv  如果要指定版本号,pip install virtualenv==15.0.1(安装虚拟环境) 3 创建django虚拟环境,命令 virtualenv django_basic_venv 4 使用虚拟环境 需要进入到安装目录的Scripts文件夹下,运行

Ionic2环境搭建及文件目录介绍

[注]引用自:http://blog.csdn.net/jasonzds/article/details/53821184 1环境搭建 一年前研究混合框架,初步确定了四种方案给公司选择,ionic,hbuilder,wex5,react-native这四个框架各有优缺点,ionic和react-native是国外框架,相对好一点,文档更新很快,就不一一说了,大概的思路都是一样的,js逻辑实现,同时调用原生功能,h5,css3 UI实现,其实他们都有自己的ui框架,当时选择了国内的hbuiler,

Selenium+Java+Eclipse 自动化测试环境搭建

一.下载Java windows java下载链接 https://www.java.com/zh_CN/download/win10.jsp 二.安装Java 安装好后检查一下需不需要配置环境变量,现在java 8已经不用配置环境变量了,直接在命令行输入:java -version 三.下载和安装Eclipse windows Eclipse下载链接 https://www.eclipse.org/downloads/ 你也可以下载绿色版 四.下载selenium,然后解压 selenium

Qt在Mac OS X下的编程环境搭建(配置Qt库和编译器,有图,很清楚)

尊重作者,支持原创,如需转载,请附上原地址:http://blog.csdn.net/libaineu2004/article/details/46234079 在Mac OS X下使用Qt开发,需要配置Qt库和编译器.编译器只能使用苹果公司自主研发的Clang.1.分别下载并安装XCode和Command Line Tools(必须安装),安装完毕后,Clang就有了. https://developer.apple.com/downloads/ 2.下载Qt并默认安装 http://down

基于 Eclipse 的 MapReduce 开发环境搭建

文 / vincentzh 原文连接:http://www.cnblogs.com/vincentzh/p/6055850.html 上周末本来要写这篇的,结果没想到上周末自己环境都没有搭起来,运行起来有问题的呢,拖到周一才将问题解决掉.刚好这周也将之前看的内容复习了下,边复习边码代码理解,印象倒是很深刻,对看过的东西理解也更深入了. 目录 1.概述 2.环境准备 3.插件配置 4.配置文件系统连接 5.测试连接 6.代码编写与执行 7.问题梳理 7.1 console 无日志输出问题 7.2

ICE分布式文件管理系统——ICE环境搭建(其二)

上一博文,我们讲述了ICE这个中间件的基本认识. 接下来我们讲述开发环境搭建. 其过程主要分为三步: 安装GCC-4.4.6.安装ICE-3.4.2.安装QT-4.7.3. (本文是基于LINUX下的ICE-3.4.2的安装,如果已安装了GCC(版本高于GCC-4.4.6亦可),请直接安装ICE) 一.安装GCC: (gcc各版本浏览地址:http://ftp.gnu.org/gnu/gcc/) 一般来说基于linux的操作系统都是默认安装了GCC的.假如说你的电脑没有的话 请百度一哈,可以解决

[Step-By-Step Angular2](1)Hello World与自动化环境搭建

随着rc(release candidate,候选版本)版本的推出,万众瞩目的angular2终于离正式发布不远啦!五月初举办的ng-conf大会已经过去了整整一个月,大多数api都如愿保持在了相对稳定的状态——当然也有router这样的例外,在rc阶段还在大面积返工,让人颇为不解——不过总得说来,现在学习angular2不失为一个恰当的时机. Google为angular2准备了完善的文档和教程,按理说,官网(https://angular.io)自然是学习新框架的最好教材.略显遗憾的是,在B