首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

关于SSH框架的Spring3和struts2的有关问题

2013-08-01 
关于SSH框架的Spring3和struts2的问题!bean idloginServiceImpl alt关于SSH框架的Spring3和struts2的有关问题 /property name

关于SSH框架的Spring3和struts2的问题!
<bean id="loginServiceImpl" alt="关于SSH框架的Spring3和struts2的有关问题" />

property name="loginServiceImpl"和ref="loginServiceImpl

不需要相同,只要你对应名字就可以了...前者是你注入的类里面的那个set方法的名字,后者是你声明bean的名字...简单的说就是把通过xml配置把声明的指向注入通过你的set方法,当然还有的情况是比较特别的,就是你使用注解的时候,如果默认不使用别名的话,就是默认规则,类名的首字母变小写,例如UserDao...他的默认bean名就是userDao..你注入的时候就setUserDao,在这个方法上加入@Resource这样能匹配,或者是@Resource(name = "userDao")这样是强制指定对应bean名
[解决办法]
<property name="loginServiceImpl" ref="loginServiceImpl"></property> 这里的两个loginServiceImpl是可以不一样的,如果你前一个loginServiceImpl不是叫这个,那么你在action中定义时也不能叫这个,action中的ref="xxx"必须保证xxx与这里的<property nam="xxx" ..../>保持一致,同理,如果你后一个loginServiceImpl不是叫这个,那么你在dao声明时也不能叫这个,LZ慢慢尝试吧,你会懂的
[解决办法]
// id是唯一标识你这个bean的,自己想怎么改都行,只要符合语法规定就行
<bean id="loginServiceImpl" class="serviceimpl.LoginServiceImpl"></bean>
 <bean id="loginAction" class="action.LoginAction">


// name是所属的action.LoginAction中定义的属性名,肯定不能乱写了,要与属性名相同,ref引用的就是你需要注入的bean的id,需要和你上边定义的相同就行了。
 <property name="loginServiceImpl" ref="loginServiceImpl"></property>
 </bean>
[解决办法]
<property name="loginServiceImpl" ref="loginServiceImpl"></property>
-----------------------------
name和ref不需要相同,一个是property对应的bean需要声明一个loginServiceImpl成员;另一个是spring环境中必须定义一个名称为loginServiceImpl的bean。
[解决办法]
很容易理解,只要知道,name是你类里的属性名, 而ref对应的是你注入的ID呀
[解决办法]
<bean id="loginAction" class="action.LoginAction">
<property name="loginServiceImpl" ref="loginServiceImpl"></property>
</bean>
===================================================
property :指bean id为"loginAction"的类 有loginServiceImpl这个属性。只是说明有这个属性。但这个属性是什么类型的还不知道。
------------------------------------
ref="loginServiceImpl"就是解决这个问题的。ref指向了另外一个bean,那个bean是loginAction的属性。那个bean的id也为loginServiceImpl,所以这里的rel要写成loginServiceImpl。
那个bean的类型为class="xxxx"定义的类型。
------------------------------------
 name="loginServiceImpl" ref="loginServiceImpl" 这两个不一定一样,配成一样是省事。只要ref的值和loginServiceImpl这个类的配置的id的值 一样就行了。
[解决办法]
 name="loginServiceImpl"是loginAction的成员变量
 ref="loginServiceImpl是给这个变量赋值
[解决办法]
不一定要相同的,<property name="login" ref="loginServiceImpl"></property>中的name和你在代码中的name一致就可以了。比如:private LoginServiceImpl login这样也是可以的

热点排行