1.struts的国际化:
Struts.properties:
struts.custom.i18n.resources=globalMessages
英文配置文件:globalMessages_en.properties:
firstname=firstname
lastname=lastname
age=age
中文配置文件:globalMessages_zh.properties:
firstname=\u59D3
lastname=\u540D
age=\u5E74\u9F84
且在jsp中控件的显示内容用取国际化的方式:
<s:form action="saveUser">
<s:textfield name="user.firstname" label="%{getText('firstname')}"></s:textfield>
<s:textfield name="user.lastname" label="%{getText('lastname')}"></s:textfield>
<s:textfield name="user.age" label="%{getText('age')}"></s:textfield>
<s:submit></s:submit>
<!--<s:textfield name="user.firstname" label="%{getText('firstname')}">为:取国际化的用法-->
</s:form>
2.一般ssh的类层次结构应如下图所示,其中dao层为对某个javabean对象的全部数据操作的接口,dao.impl层为基于hibernate的接口具体操作实现,强烈建议在action和dao层之间夹着service层,防止在action中直接访问数据库,这样在service服务层中可以写其他逻辑。
<!--EndFragment-->
3.服务层UserServiceImpl.java类中的getter和setter方法的主要作用是在服务器解析spring配置文档时用来向服务service层注入dao对象的。下述的服务层代码中主要是利用setter方法将userDao注入到此service层中。
private UserDAO userDao;
public UserDAO getUserDao()
{
return userDao;
}
public void setUserDao(UserDAO userDao)
{
this.userDao = userDao;
}
然后直接在service的实现类中直接调用dao进行数据库操作
public void delete(User user)
{
this.userDao.removeUser(user);
}
例如下spring配置文档applicationContext.xml中配置:其中第二个bean中的name="userDao"表示的为上述代码中service中的userDao对象,ref="userDao"则表示第一个beanid。
<bean id="userDao" class="com.test.dao.impl.UserDAOImpl" scope="singleton">
<property name="sessionFactory">
<ref bean="sessionFactory"/>
</property>
</bean>
<bean id="userService" class="com.test.service.impl.UserServiceImpl">
<property name="userDao" ref="userDao"></property>
</bean>
<!--EndFragment-->