spring的些小问题 private final Log log = LogFactory.getLog(AddUser.class); 還有這個謝謝了! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 private final Log log = LogFactory.getLog(AddUser.class); 这个是log4j的 <bean id="userController" class="com.nineKnine.user.web.UserController"> <property name="commandName"> <value> user </value> </property> <property name="commandClass"> <value> com.nineKnine.user.domain.User </value> </property> <property name="sessionForm"> <value> true </value> </property> <property name="userMgr"> <ref bean="userMgr" /> </property> </bean> 定义一个bean,ID是userController(ID可以在spring配置文件中使用)这个bean是com.nineKnine.user.web.UserController.java这个类这个类注入时中需要设置属性commandName的值是user这个类注入时中需要设置属性commandClass的值是com.nineKnine.user.domain.User这个类注入时中需要设置属性userMgr的值是userMgr(userMgr应该是在spring配置文件中的另一个bean的ID) 有空你看一下spring的教程吧,这样比较清楚。首先看这个:<bean id="userController" class="com.nineKnine.user.web.UserController"> 这个配置的意思就是创建类com.nineKnine.user.web.UserController的一个实例,和你调用它的构造函数来创建一个实例没有区别。这个实例的名字是userController。它的效果等同于:UserController userController = new UserController();然后看这个:<property name="commandName"> <value>user</value> </property> 这一行的意思是说这个叫做userController的对象,有一个叫做commandName的属性。换句话说,在这个UserController类里面,一定有这样一个方法:public void setCommandName(String commandName) { ....}这个配置是告诉Spring容器,要调用这个setter方法,将字符串user作为参数传给这个setter方法,来给userController的commandName属性赋值它等同于你直接写代码:...setCommandName("user");...下面这两个property配置意思同上:<property name="commandClass"> <value>com.nineKnine.user.domain.User</value> </property> <property name="sessionForm"> <value>true</value> </property> 但是这个property配置的意思略有不同。这一次,它不再是赋值一个字符串,而是将另外一个对象赋值给userController的一个属性。<property name="userMgr"> <ref bean="userMgr"/> </property>注意看,这里不再是<value>...</value>,而是<ref bean="userMgr"/>。它的意思是说userController有一个属性,它通过setUserMgr(...)方法来赋值。但是这个属性的类型是另外一个对象。现在,把一个叫作 userMgr 的对象作为参数来调用这个setter方法来给属性赋值。这里我假设这个userMgr对象的类是UserManager,那么它等同于你写这样的代码:userController.setUserMgr(userMgr); spring的bean其实就是告诉spring应该如何创建一个对象。和你自己写代码来创建对象的实例是没有区别的。 private final Log log = LogFactory.getLog(AddUser.class); 这里使用的是Apache通用日志,Log和LogFactory都是接口,getLog是一个静态工厂方法产生一个Log实例,你可以在commons-log.properties里将Log接口指向具体的第三方的日志插件实现spring配置文件里的相关属性见5楼 public class UserController extends SimpleFormController{ private final Log log = LogFactory.getLog(UserController.class); public UserController(){ setFormView("register"); setSuccessView("welcome"); setCommandClass(User.class); } public ModelAndView onSubmit(HttpServletRequest request, HttpServletResponse response, Object command, BindException errors) throws Exception{ log.debug("Enter Controller UserController"); User user = (User) command; userMgr.saveUser(user); RedirectView rv = new RedirectView("welcome.html"); rv.setContextRelative(true); rv.setHttp10Compatible(false); return new ModelAndView(rv); } private UserMgr userMgr = null; public void setUserMgr(UserMgr userMgr){ this.userMgr = userMgr; }}这就是userController,你和我说的 <property name="commandName"> <value>user</value> </property>这一行的意思是说这个叫做userController的对象,有一个叫做commandName的属性。换句话说,在这个UserController类里面,一定有这样一个方法:Java code public void setCommandName(String commandName) { .... }这个配置是告诉Spring容器,要调用这个setter方法,将字符串user作为参数传给这个setter方法,来给userController的commandName属性赋值它等同于你直接写代码:Java code ... setCommandName("user"); ...下面这两个property配置意思同上:XML code <property name="commandClass"> <value>com.nineKnine.user.domain.User</value> </property> <property name="sessionForm"> <value>true</value> </property>这及个地方那个我还是不怎么明白! formbean接受不到表单的数据 我已崩溃 socket和jms的区别 作为软件测试人员,如何更好地学习Java? struts2中表单提交,总是返回input配置页面。 100分求 flex高手画矢量图形和位图 ~~~~100分!~~~~ 求助:关于query的返回值 菜鸟的痴呆问题! 谁能帮我看看这个Applet程序那里出错了? weblogic8控制台登陆后出现致命错误。帮忙解决高分相送! 这个测试cmp的程序有什么错误?我那个方法定义了,老是说找不到 申请Java J2EE 和 Web 版的版主 连接不上MYSQL数据库
class="com.nineKnine.user.web.UserController">
<property name="commandName">
<value> user </value>
</property>
<property name="commandClass">
<value> com.nineKnine.user.domain.User </value>
</property>
<property name="sessionForm">
<value> true </value>
</property>
<property name="userMgr">
<ref bean="userMgr" />
</property>
</bean>
定义一个bean,ID是userController(ID可以在spring配置文件中使用)
这个bean是com.nineKnine.user.web.UserController.java这个类
这个类注入时中需要设置属性commandName的值是user
这个类注入时中需要设置属性commandClass的值是com.nineKnine.user.domain.User
这个类注入时中需要设置属性userMgr的值是userMgr(userMgr应该是在spring配置文件中的另一个bean的ID)
这个实例的名字是userController。它的效果等同于:UserController userController = new UserController();
然后看这个:<property name="commandName">
<value>user</value>
</property> 这一行的意思是说这个叫做userController的对象,有一个叫做commandName的属性。换句话说,在这个UserController类里面,一定有这样一个方法:public void setCommandName(String commandName) {
....
}这个配置是告诉Spring容器,要调用这个setter方法,将字符串user作为参数传给这个setter方法,来给userController的commandName属性赋值它等同于你直接写代码:...
setCommandName("user");
...下面这两个property配置意思同上:<property name="commandClass">
<value>com.nineKnine.user.domain.User</value>
</property>
<property name="sessionForm">
<value>true</value>
</property>
但是这个property配置的意思略有不同。这一次,它不再是赋值一个字符串,而是将另外一个对象赋值给userController的一个属性。<property name="userMgr">
<ref bean="userMgr"/>
</property>注意看,这里不再是<value>...</value>,而是<ref bean="userMgr"/>。它的意思是说userController有一个属性,它通过setUserMgr(...)方法来赋值。但是这个属性的类型是另外一个对象。现在,把一个叫作 userMgr 的对象作为参数来调用这个setter方法来给属性赋值。这里我假设这个userMgr对象的类是UserManager,那么它等同于你写这样的代码:userController.setUserMgr(userMgr);
private final Log log = LogFactory.getLog(UserController.class);
public UserController(){
setFormView("register");
setSuccessView("welcome");
setCommandClass(User.class);
} public ModelAndView onSubmit(HttpServletRequest request, HttpServletResponse response, Object command, BindException errors) throws Exception{
log.debug("Enter Controller UserController");
User user = (User) command;
userMgr.saveUser(user);
RedirectView rv = new RedirectView("welcome.html");
rv.setContextRelative(true);
rv.setHttp10Compatible(false);
return new ModelAndView(rv);
}
private UserMgr userMgr = null;
public void setUserMgr(UserMgr userMgr){
this.userMgr = userMgr;
}
}
这就是userController,你和我说的
<property name="commandName"> <value>user</value> </property>
这一行的意思是说这个叫做userController的对象,有一个叫做commandName的属性。换句话说,在这个UserController类里面,一定有这样一个方法:Java code public void setCommandName(String commandName) { .... }
这个配置是告诉Spring容器,要调用这个setter方法,将字符串user作为参数传给这个setter方法,来给userController的commandName属性赋值它等同于你直接写代码:Java code ... setCommandName("user"); ...
下面这两个property配置意思同上:XML code <property name="commandClass"> <value>com.nineKnine.user.domain.User</value> </property> <property name="sessionForm"> <value>true</value> </property>这及个地方那个我还是不怎么明白!