STRUTS2

1. 写好最简单的hello world项目后,无法通过浏览器访问到hello.jsp页面,提示没有资源。

学习structs2的时间,已经更新到了2.3.16了,structs中的很多jar包都已和视频中的不一样了。试过只包含部分基础的jar包,结果发现无法访问hello.jsp页面,提示没有资源。后来,查看tomcat的日志时,发现启动这个项目有问题,提示有错误。后来将struct2中的struts-2.3.16\apps\struts2-blank\WEB-INF\lib中所有jar包都加入了项目中,项目就可以成功启动了。

后来自己建项目的时候,发现使用action进行页面处理的情况下,服务器端报404 resource not avaible的错误,而直接访问jsp页面没有错误。后来发现,是自己忘了配置web.xml中的struts2相关的filter所致。除此之外,struts.xml文件放错位置,会提示说找不到对应的action(虽然明明写有那个action)。struts.xml文件应该放在src文件夹下。

另外,如果直接复制其他项目来新建一个自己的项目,一定要记得修改web选项。右键单击自己的项目,选择properties->MyEclipse->Web,在右侧的面板上,修改Web context-root中的内容与自己的项目名称一致。

2. 设置devMode = true,但没有效果。

视频中提到,将<constant name="struts.devMode" value="true" />加入package前就可进入开发模式,当程序做出修改时,无需重启tomcat即可看到修改后的效果。但实际操作中发现,仅设置devMode为true,并不能达到效果。加入<constant name="struts.configuration.xml.reload" value="true"/>到package前,就可以启动开发模式了。(有的时候感觉添加了这句也不太靠谱,有时会出出修改package name 和action name的时候,需重启服务器才有效果的情况。)

3. 不能使用DMI动态方法调用。使用动态方法DMI时系统出错,提示说没有相应的方法

由于struct2版本更新,系统中默认将DMI方法相关设置参数的值设为false。如需使用,需要在package前设置参数如下:<constant name="struts.enable.DynamicMethodInvocation" value="true" />。可能在制作视频时,官网较为推荐该使用!符号调用方法的DMI方法。但目前,官网不太推荐使用这种了。官网现在推荐的是使用method方法+通配符方法来进行方法的调用。若使用该方法,可将参数还原为默认值:<constant name="struts.enable.DynamicMethodInvocation" value="false" />

4. 使用<s:fielderror fieldname = "name" />时报错

查了下官网的文档,文档上说可以用<s:fielderror />来显示所有错误,试了下,可行;文上还说可以用<s:fielderror fieldname = "filed1" />来显示个别field的错误,试了下,不行。不知道为什么。先在这里记录下。另外,<s:property value = "error.XXX">,这个XXX的值也不为filed的,而是传入field的值。这个和视频上说的不一样。如果是这样,不太方便显示第n个错误提示。因为并不知道用户会传什么值给field。执行了一下视频中带的源代码,发现源代码与视频中讲到的情况一样。可能是由于struct2升级的原因导致的不一致?

5. dynamic result时,在struts.xml中写<result>${r}</result>报错。

可能是由于struts2版本不一致,也可能是myeclipse版本不一致,此处报错。应改为:<result>${r}.jsp</result>,并在对应的action文件中,将r的值改为jsp文件的文件名部分。这样,程序就能正常运行了。

6. result with params时,在struts.xml中写<result>/xxx.jsp?t=${type}</result>,myeclipse报错。

这是由于MyEclipse 10对动态配置结果集支持不好,可以忽略这个错误提示,执行上是正常的。下面是网上的一个解决方案: Window->prefrences->MyEclipse->Validation->Struts2 Validator->去掉build的勾。去掉之后还是会有报错的,需要重启一下MyEclipse才行。

7. 自己写代码练习时,使用domainModel方式从页面向action传递参数,参数总是传递不进去。

自己的代码如下:index.jsp页面:

  	<a href = "test/add?u.name=a">Execute</a><br />

action.java的代码如下:

public class UserAction extends ActionSupport {

	private User user;
public String add() {
System.out.println("name=" + user.getName());
System.out.println("age=" + user.getAge());
return SUCCESS;
} public User getUser() {
return user;
} public void setUser(User user) {
this.user = user;
} }

  结果,程序在action.java中的System.out.println处出错,说是有空指针。找了半天,最后发现,是由于前台使用u作为传递值的实例名,而后台的类中,却使用user作为接收值的实例名。前后台实例名不一致,使得后台的user无法初始化,所以打印值是会出错。将前台的实例名改为user后,程序即可正确运行。

HIBERNATE

1. 删除数据表时提示有外键,无法删除(提示:a foreign key constraint fails)

因为husband和wife中都存在外键,删除外键wifeId和hs_id时,提示该字段不为外键。可以设置mysql,使得删除表时不照顾外键的情况:

SET FOREIGN_KEY_CHECKS = 0;
DROP TABLE Address;
SET FOREIGN_KEY_CHECKS = 1;

  

学习马士兵的struts2/hibernate/spring中遇到的问题及其解决方法的更多相关文章

  1. 工作笔记3.手把手教你搭建SSH(struts2+hibernate+spring)环境

    上文中我们介绍<工作笔记2.软件开发经常使用工具> 从今天開始本文将教大家怎样进行开发?本文以搭建SSH(struts2+hibernate+spring)框架为例,共分为3步: 1)3个 ...

  2. struts2+hibernate+spring简单整合且java.sql.SQLException: No suitable driver 问题解决

    最近上j2ee的课,老师要求整合struts2+hibernate+spring,我自己其实早早地有准备弄的,现在都第9个项目了,无奈自己的思路和头绪把自己带坑了,当然也是经验问题,其实只是用myec ...

  3. Struts2+Hibernate+Spring 整合示例

    转自:https://blog.csdn.net/tkd03072010/article/details/7468769 Struts2+Hibernate+Spring 整合示例 Spring整合S ...

  4. 【Spring实战】—— 4 Spring中bean的init和destroy方法讲解

    本篇文章主要介绍了在spring中通过配置init-method和destroy-method方法来实现Bean的初始化和销毁时附加的操作. 在java中,我们并不需要去管理内存或者变量,而在C或C+ ...

  5. Hibernate的懒加载session丢失解决方法

    在web.xml加入spring提供的过滤器,延长session的生命周期 <!--Hibernate的懒加载session丢失解决方法 --> <filter> <fi ...

  6. 国内不fq安装K8S四: 安装过程中遇到的问题和解决方法

    目录 4 安装过程中遇到的问题和解决方法 4.1 常见问题 4.2 常用的操作命令 4.3 比较好的博客 国内不fq安装K8S一: 安装docker 国内不fq安装K8S二: 安装kubernet 国 ...

  7. VS2012中丢失ArcGIS模板的解决方法

    VS2012中丢失ArcGIS模板的解决方法 由于ArcGIS10.0(for .NET)默认是用VS2010作为开发工具的,所以在先安装VS2012后装ArcGIS10.0 桌面版及ArcObjec ...

  8. js中style.display=""无效的解决方法

    本文实例讲述了js中style.display=""无效的解决方法.分享给大家供大家参考.具体解决方法如下: 一.问题描述: 在js中我们有时想动态的控制一个div显示或隐藏或更多 ...

  9. java开发中遇到的问题及解决方法(持续更新)

    摘自 http://blog.csdn.net/pony12/article/details/38456261 java开发中遇到的问题及解决方法(持续更新) 工作中,以C/C++开发为主,难免与其他 ...

随机推荐

  1. C# "error CS1729: 'XXClass' does not contain a constructor that takes 0 arguments"的解决方案

    出现这种错误的原因时,没有在子类的构造函数中指出仅有带参构造函数的父类的构造参数. 具体来讲就是: 当子类要重用父类的构造函数时, C# 语法通常会在子类构造函数后面调用 : base( para_t ...

  2. C++ STL算法系列5---equal() , mismatch()

    equal和mismatch算法的功能是比较容器中的两个区间内的元素.这两个算法各有3个参数first1,last1和first2.如果对 于区间[first1,last1)内所有的first1+i, ...

  3. MySQL修改root密码的几种方法

    方法1: 用SET PASSWORD命令 首先登录MySQL. 格式:mysql> set password for 用户名@localhost = password('新密码'); 例子:my ...

  4. LoadRunner--内存指标介绍

    Threads——线程数当前全部线程数============================================ Available MBytes——物理内存的可用数指计算机上可用于运行 ...

  5. ansible服务模块和组模块使用

    本篇文章主要是介绍ansible服务模块和组模块的使用. 主要模块为ansible service module和ansible group moudle,下面的内容均是通过实践得到,可以直接运行相关 ...

  6. 【LeetCode】83 - Remove Duplicates from Sorted List

    Given a sorted linked list, delete all duplicates such that each element appear only once. For examp ...

  7. TopFreeTheme精选免费模板【20130701.特别版】

    今天我们整理了16款WordPress和Joomla的最新主题.它们都是来自Themeforest,RocketTheme,YooTheme以及TemPlaza的高质量主题,赶快收藏起来吧. Este ...

  8. java多线程之 Executors线程池管理

    1. 类 Executors 此类中提供的一些方法有: 1.1 public static ExecutorService newCachedThreadPool() 创建一个可根据需要创建新线程的线 ...

  9. 触控发布《Cocos开发者平台白皮书》

    Cocos 2014 开发者大会(秋季)组委会今天正式发布了<Cocos开发者平台白皮书>,GameRes游资网得到Cocos官方授权发布该白皮书电子版. 白皮书主要内容包括对行业的趋势解 ...

  10. 由于SSH配置文件的不匹配,导致的Permission denied (publickey)及其解决方法。

    读者如要转载,请标明出处和作者名,谢谢.地址01:http://space.itpub.net/25851087地址02:http://www.cnblogs.com/zjrodger/作者名:zjr ...