(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>

structs环境搭建的更多相关文章

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

    框架学习前言 这个模块是面向Spring的,Spring的学习我是这么想的: 1.简单介绍Spring,主要是从网上借鉴一些重点 2.尽量说明清楚Spring的使用方法以及细节点 3.尽量以自己的理解 ...

  2. 第一章 Spring整体框架和环境搭建

    1.Spring 的整体架构 Spring框架主要由7大模块组成,它们提供了企业级开发需要的所有功能,而且每个模块都可以单独使用,也可以和其他模块组合使用,灵活且方便的部署可以使开发的程序更加简洁灵活 ...

  3. Spring之Spring环境搭建

    Spring之Spring环境搭建 一.什么是Spring? Spring框架是由于软件开发的复杂性而创建的.Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情.然而,Spr ...

  4. .NET Core系列 : 1、.NET Core 环境搭建和命令行CLI入门

    2016年6月27日.NET Core & ASP.NET Core 1.0在Redhat峰会上正式发布,社区里涌现了很多文章,我也计划写个系列文章,原因是.NET Core的入门门槛相当高, ...

  5. Azure Service Fabric 开发环境搭建

    微服务体系结构是一种将服务器应用程序构建为一组小型服务的方法,每个服务都按自己的进程运行,并通过 HTTP 和 WebSocket 等协议相互通信.每个微服务都在特定的界定上下文(每服务)中实现特定的 ...

  6. rnandroid环境搭建

    react-native 环境搭建具体步骤这个大家已经玩烂了,这个主要是记录下来自己做win7系统遇到的坑 1.com.android.ddmlib.installexception 遇到这个问题,在 ...

  7. python开发环境搭建

    虽然网上有很多python开发环境搭建的文章,不过重复造轮子还是要的,记录一下过程,方便自己以后配置,也方便正在学习中的同事配置他们的环境. 1.准备好安装包 1)上python官网下载python运 ...

  8. springMVC初探--环境搭建和第一个HelloWorld简单项目

    注:此篇为学习springMVC时,做的笔记整理. MVC框架要做哪些事情? a,将url映射到java类,或者java类的方法上 b,封装用户提交的数据 c,处理请求->调用相关的业务处理—& ...

  9. 【定有惊喜】android程序员如何做自己的API接口?php与android的良好交互(附环境搭建),让前端数据动起来~

    一.写在前面 web开发有前端和后端之分,其实android还是有前端和后端之分.android开发就相当于手机app的前端,一般都是php+android或者jsp+android开发.androi ...

随机推荐

  1. CSS 属性 :before && :after的用法,伪类和伪元素的区别

    一::before && :after的用法 :before 如同对伪元素的名称一样,:before 是用来给指定的元素的内容前面插入新的内容.举例说明: .before:before ...

  2. HDU 4122 Alice's mooncake shop --RMQ

    题意: 一个月饼店做月饼,总营业时间m小时,只能在整点做月饼,可以做无限个,不过在不同的时间做月饼的话每个月饼的花费是不一样的,假设即为cost[i],再给n个订单,即为在某个时间要多少个月饼,时间从 ...

  3. UVALive 6263 The Dragon and the knights --统计,直线分平面

    题意:给n条直线,将一个平面分成很多个部分,再给m个骑士的坐标,在一个部分内只要有一个骑士即可保护该部分,问给出的m个骑士是不是保护了所有部分. 解法:计算每个骑士与每条直线的位置关系(上面还是下面) ...

  4. ZooKeeper一二事 - 搭建ZooKeeper伪分布式及正式集群 提供集群服务

    集群真是好好玩,最近一段时间天天搞集群,redis缓存服务集群啦,solr搜索服务集群啦,,,巴拉巴拉 今天说说zookeeper,之前搭建了一个redis集群,用了6台机子,有些朋友电脑跑步起来,有 ...

  5. LoadRunner参数化MySQL

    准备:安装[msql-ODBC驱动] 一.配置数据源 1.Win7,打开控制面板-系统和安全-管理工具,点击“数据源(ODBC)”. 打开数据源(ODBC),在用户DSN选项卡中点击“添加”按钮,弹出 ...

  6. java 14 -1 正则表达式

    正则表达式:符合一定规则的字符串. 1.判断QQ号码是否正确的案例: public class RegexDemo2 { public static void main(String[] args) ...

  7. Android SQLite (二) 基本用法

    在Android开发中SQLite起着很重要的作用,网上SQLite的教程有很多很多,不过那些教程大多数都讲得不是很全面.本人总结了一些SQLite的常用的方法,借着论坛的大赛,跟大家分享分享的. 一 ...

  8. RDLC系列之五 初试XAML

    本章只讲解xaml部分,其余都和winform下一样 1.xaml代码 <Window x:Class="RDLC.WPF.MainWindow" xmlns="h ...

  9. Android签名详解(debug和release)

    1. 为什么要签名 1) 发送者的身份认证 由于开发商可能通过使用相同的Package Name来混淆替换已经安装的程序,以此保证签名不同的包不被替换 2) 保证信息传输的完整性 签名对于包中的每个文 ...

  10. C# 鼠标穿透窗体功能

    通过以下代码,在窗体启动后调用方法SetPenetrate() 即可实现窗体的穿透功能. 同样该功能需要加载命名空间 using System.Runtime.InteropServices; pri ...