Eclipse编写ssm框架中遇到的几个问题及解决方案

javaweb classpath的问题:

classpath目录简而言之指的是src目录下,可放在src目录或者其子目录下,读取配置文件位置时指定即可。

classpath 路径在每个J2ee项目中都会用到,即WEB-INF下面的classes目录,所有src目录下面的java、xml、properties等文件编译后都会在此,所以在开发时常将相应的xml配置文件放于src或其子目录下;

          引用classpath路径下的文件,只需在文件名前加classpath:(需保证该文件确实位于classpath路径下);

如:

Xml代码   收藏代码
  1. <param-value>classpath:applicationContext-*.xml</param-value>  

或者引用其子目录下的文件,如  

Xml代码   收藏代码
  1. <param-value>classpath:context/conf/controller.xml</param-value>  

 classpath* 的使用:当项目中有多个classpath路径,并同时加载多个classpath路径下(此种情况多数不会遇到)的文件,*就发挥了作用,如果不加*,则表示仅仅加载第一个classpath路径,代码片段: 

Xml代码   收藏代码
  1. <param-value>classpath*:context/conf/controller*.xml</param-value>  

 ########################################################

 

首先  classpath是指 WEB-INF文件夹下的classes目录 
解释classes含义: 
1.存放各种资源配置文件 eg.init.properties log4j.properties struts.xml 
2.存放模板文件         eg.actionerror.ftl 
3.存放class文件       对应的是项目开发时的src目录编译文件 
总结:这是一个定位资源的入口 

如果你知道开发过程中有这么一句话:惯例大于配置 那么也许你会改变你的想法 
对于第二个问题  
这个涉及的是lib和classes下文件访问优先级的问题:  lib>classes 
对于性能的影响应该不在这个范畴 


数据绑定问题

在一个删除问题上,传递进来的参数是tid,而在controller类中的接收参数是id,删除操作就没有完成,,将形参使用注解形式转换,即完成数据绑定。

        @RequestMapping("/del")
	public String del(@RequestParam(value="tid")int id) {
		try {
			System.out.println("id: " + id);
			schoolService.delTeacher(id);
			return "success";
		} catch (Exception e) {
			return "failed";
		}
	}

以下是我的一个ssm框架整合的一个简单目录架构:


如果感觉传统的javaweb项目步骤太过繁琐与复杂的话,可以采用maven+ssm编程方式,maven可以动态的在远程仓库中下载所需要的jar包,并添加依赖,而需要程序员做的仅仅只是编写maven的pom.xml配置文件,将所需的依赖添加到配置文件中即可。

猜你喜欢

转载自blog.csdn.net/acsuccess/article/details/80889468