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. makefile实例(3)-多个文件实例优化

    我们先看一下make是如何工作的在默认的方式下,也就是我们只输入make命令.那么,1.make会在当前目录下找名字叫“Makefile”或“makefile”的文件.2.如果找到,它会找文件中的第一 ...

  2. hdu 5510 Bazinga (kmp+dfs剪枝) 2015ACM/ICPC亚洲区沈阳站-重现赛(感谢东北大学)

    废话: 这道题很是花了我一番功夫.首先,我不会kmp算法,还专门学了一下这个算法.其次,即使会用kmp,但是如果暴力枚举的话,还是毫无疑问会爆掉.因此在dfs的基础上加上两次剪枝解决了这道题. 题意: ...

  3. static_cast .xml

    pre{ line-height:1; color:#1e1e1e; background-color:#d2d2d2; font-size:16px;}.sysFunc{color:#627cf6; ...

  4. 图Graph

    存储结构: 1.邻接矩阵存储 typedef struct { char vex[MAXVEX];//顶点数 int arc[MAXVEX][MAXVEX];//邻接矩阵 int numVextexe ...

  5. 从date中获取相应信息

    创建测试用表: CREATE OR REPLACE VIEW v AS SELECT TO_DATE('2015-5-5 13:14:15', 'YYYY-MM-DD HH24:MI:SS') AS ...

  6. git 换行符问题

    git 换行符问题 在windows环境中 对于autocrlf = false 不会激发 关于换行符的处理 对于autocrlf = true 会在提交是将LF替换成CRLF 切出时时CRLF 对于 ...

  7. php获取上传多个文件缺失

    我们的一个页面编辑发布后台出现了图片无法上传保存的情况,经过调试对比发现,原来是file表单数量过多导致,减少file表单的数量即可上传成功.为了满足需求不减少file表单数并保证上传成功,于是更改了 ...

  8. mybatis源码学习: 编译的方法

    mybatis3用了一段时间,抽出时间来研究一下.具体用法参考官方文档就行,源码在这里.mybatis相对而言,规模较小,可以从中学习如何编写高质量的java项目. mybatis3使用maven管理 ...

  9. fork()函数

    现代操作系统提供的三种构造并发程序的方法: •进程 一个进程实体包括:代码段,数据段, 进程控制块 fork()函数:通过系统调用创建一个与原来一模一样的子线程,[用来处理请求信号,而父进程继续一直处 ...

  10. 桶排序-Swift

    import Foundation let b:Array = [5,2,3,1,8] var a:NSMutableArray = [] for var i in 0 ..< 11 { a[i ...