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. [禅悟人生]"执著"是自缚的茧

    宋代苏东坡和佛印禅师是好朋友,他们习惯拿对方开玩笑.有一天,苏东坡到金山寺和佛印禅师打坐参禅,苏东坡觉得身心通畅,于是问禅师道:“禅师!你看我坐的样子怎么样?” “好庄严,像一尊佛!” 苏东坡听了非常 ...

  2. hdu 1527 取石子游戏(Wythoff Game)

    题意:Wythoff Game 思路:Wythoff Game #include<iostream> #include<stdio.h> #include<math.h& ...

  3. Win10正式版激活方法有哪些?如何激活Win10?

    很多用户都想将系统升级到Win10,但是却不知道怎么激活Win10正式版的方法,其实不同版本激活正式版Win10的方法秘钥不同,下面99安卓网小编就分享一些激活Win10正式版的方法和秘钥,供大家参考 ...

  4. Flex通信-与Java实现Socket通信实例

    Flex通信-与Java实现Socket通信实例  转自:http://blessht.iteye.com/blog/1136888 博客分类: Flex 环境准备 [服务器端] JDK1.6,“ja ...

  5. erlang常用命令

    1 erlang启动时就运行odbc erl -s odbc 2 ping 节点 net_adm:ping('rabbit@COMPUTERNAME'). 3 运行cmd命令 os:cmd(" ...

  6. 预定义宏_GNUC_ _MSC_VER

    一.预定义__GNUC__宏 1 __GNUC__ 是gcc编译器编译代码时预定义的一个宏.需要针对gcc编写代码时, 可以使用该宏进行条件编译. 2 __GNUC__ 的值表示gcc的版本.需要针对 ...

  7. 第二百一十五、六天 how can I 坚持

    昨天刷机刷到很晚,博客都忘写了,刷了个flyme,用着没什么感觉,今天打电话试了下还有破音,有点小后悔.不行过两天再刷回来. 今天.mysql ifnull函数. 两条熊猫鱼都死了,这两天雾霾那么严重 ...

  8. Attach source code to a Netbeans Library Wrapper Module

    http://rubenlaguna.com/wp/2008/02/22/attach-source-code-to-a-netbeans-library-wrapper-module/ Attach ...

  9. Android问题-DelphiXE5开发Andriod连接Webservice乱码问题

    问题现象:在使用DelphiXE5开发Andriod连接Webservice乱码. 问题原因:数据类型不同. 问题处理:为了不让广大朋友再烦恼,我就把解决办法写出来吧,把数据库中我们要查询的字段类型改 ...

  10. HDU 1312 Red and Black DFS(深度优先搜索) 和 BFS(广度优先搜索)

    Red and Black Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total ...