学習小項目--学生情報管理システム用ssh 2完璧データベース用はmysqlです。
先日学生の情報管理システムを作ったのは情報の添削にほかならない。 今回はssh 2を使いました。アナログデータベースは使いません。
注意点:
1.jarバッグ
2.appication Contect.xml struts.xml ヒベルナ.cfg.xml mode中クラスとマッピングファイルUser.hbm.xml
3.配置がちょっと違っています。
hibernate Templateでsession Factoryを配置し、daoにhibernate Templateを配置しました。 seesion Factoryを直接配置することもできます。
5.Userを対象としたUserActionでuser Serviceを宣言する あるいはUserServiceでUserDAOを宣言する時はインターフェースで声明したほうがいいです。
ダイナミックエージェントを使っています。 もちろん類で直接声明してもいいです。 CGILBエージェントを使っています。
6.daoはextensになります ハイベルナーDao Support
次にspringとstrutsの配置を置きます。
注意点:
1.jarバッグ
2.appication Contect.xml struts.xml ヒベルナ.cfg.xml mode中クラスとマッピングファイルUser.hbm.xml
3.配置がちょっと違っています。
hibernate Templateでsession Factoryを配置し、daoにhibernate Templateを配置しました。 seesion Factoryを直接配置することもできます。
<bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
4.struts.xmlにactionを配置するclassは、appication Contact.xmlの<bean id=「****アクション」class=「com.**.action.***Action」idの名前に対応していなければなりません。このようにウェブページで提出されたactionはspringで具体化される対象となりません。5.Userを対象としたUserActionでuser Serviceを宣言する あるいはUserServiceでUserDAOを宣言する時はインターフェースで声明したほうがいいです。
ダイナミックエージェントを使っています。 もちろん類で直接声明してもいいです。 CGILBエージェントを使っています。
6.daoはextensになります ハイベルナーDao Support
次にspringとstrutsの配置を置きます。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
<beans>
<bean id="userAction" class="com.aowin.action.UserAction" scope="prototype">
<property name="userService" ref="userService"></property>
</bean>
<bean id="userService" class="com.aowin.serviceimpl.UserServiceImpl">
<property name="userDAO" ref="userDAO"></property>
</bean>
<bean id="userDAO" class="com.aowin.daoimpl.UserDAOImpl">
<property name="hibernateTemplate" ref="hibernateTemplate"></property>
</bean>
<bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation" value="classpath:hibernate.cfg.xml"></property>
</bean>
<!-- 、 -->
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<bean id="transactionInterceptor" class="org.springframework.transaction.interceptor.TransactionInterceptor">
<property name="transactionManager" ref="transactionManager"></property>
<property name="transactionAttributes">
<props>
<prop key="*">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>
<bean id="autoproxy" class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<property name="beanNames" value="*Service"></property>
<property name="interceptorNames" value="transactionInterceptor"></property>
</bean>
</beans>
struts<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<constant name="struts.devMode" value="true" />
<package name="default" namespace="/user" extends="struts-default">
<action name="userlist" class="userAction" method="getUsers">
<result>/list.jsp</result>
</action>
<action name="input" class="userAction" method="addInput">
<result>/input.jsp</result>
</action>
<action name="update" class="userAction" method="update">
<result>/update.jsp</result>
</action>
<action name="updatedo" class="userAction" method="updatedo">
<result name="input">/result.jsp</result>
<result>/result.jsp</result>
</action>
<action name="delete" class="userAction" method="delete">
<result>/result.jsp</result>
</action>
<action name="add" class="userAction" method="addUser">
<!-- -->
<interceptor-ref name="token"></interceptor-ref>
<!-- ( , ) -->
<interceptor-ref name="defaultStack"></interceptor-ref>
<result name="input">/result.jsp</result>
<result name="success">/result.jsp</result>
<result name="invalid.token">/error.jsp</result>
</action>
</package>
</struts>
dao import java.util.List;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import com.aowin.idao.IUserDAO;
import com.aowin.model.User;
public class UserDAOImpl extends HibernateDaoSupport implements IUserDAO {
public void addUser(User user) {
this.getHibernateTemplate().save(user);
}
public void deleteUser(User user) {
this.getHibernateTemplate().delete(user);
}
public List<User> getAllUser() {
String hql = "from User" ;
List<User> list = this.getHibernateTemplate().find(hql);
return list;
}
public void updateUser(User user) {
this.getHibernateTemplate().update(user);
}
public User getOneUser(int id) {
String hql = "select u from User u where u.id=?";
List<User> list = this.getHibernateTemplate().find(hql, id);
return list.get(0);
}
}
action 中部分コードは先生のものです。import java.util.List;
import com.aowin.iservice.IUserService;
import com.aowin.model.User;
import com.aowin.serviceimpl.UserServiceImpl;
import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionSupport;
@SuppressWarnings("serial")
public class UserAction extends ActionSupport {
private int id;
private String message;
private User user;
private List<User> userList;
private IUserService userService;
public IUserService getUserService() {
return userService;
}
public void setUserService(IUserService userService) {
this.userService = userService;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public List<User> getUserList() {
return userList;
}
public void setUserList(List<User> userList) {
this.userList = userList;
}
/**
*
*
* @return
*/
public String getUsers() {
userList = userService.getUserList();
return Action.SUCCESS;
}
/**
*
*
* @return
*/
public String addInput() {
return Action.SUCCESS;
}
/**
*
*
* @return
*/
public synchronized String addUser() {
userList = userService.getUserList();
//
if (userList.contains(this.user)) {
this.message = " , ";
return "input";
}
//
userService.addMessage(user.getUsername(), user.getAddress());
this.message = " ";
return Action.SUCCESS;
}
/**
*
*/
public void validateAddUser() {
if (null == this.user) {
this.message = " , ";
// input
this.addFieldError("", "");
} else if (null == user.getAddress() || "".equals(user.getAddress())) {
this.message = " ";
this.addFieldError("", "");
} else if (null == user.getUsername() || "".equals(user.getAddress())) {
this.message = " ";
this.addFieldError("", "");
}
}
/**
*
*
* @return
*/
public String update() {
for (User u : userService.getUserList()) {
if (u.getId() == this.id) {
user = u;
}
}
return Action.SUCCESS;
}
/**
*
*
* @return
*/
public String updatedo() {
//
for (User u : userService.getUserList()) {
if (u.getId() == this.id
&& u.getUsername().equals(user.getUsername())
&& u.getAddress().equals(user.getAddress())) {
this.message = " ";
return Action.INPUT;
}
}
//
if (userService.getUserList().contains(this.user)) {
this.message = " 、 , ";
return Action.INPUT;
}
userService.updateMessage(id, user.getUsername(), user
.getAddress());
this.message = " ";
return Action.SUCCESS;
}
/**
*
*/
public void validateUpdatedo() {
//
validateAddUser();
}
/**
*
*
* @return
*/
public String delete() {
userService.delMessage(id);
this.message = " ";
return Action.SUCCESS;
}
}
表示用はjspページです。 Sラベルが使えます 一般のhtmlタグも使えます。