下载S2StrutsBlank-V1.3.1.zip
1. 将convention.dicon作以下的修改
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE components PUBLIC "-//SEASAR2.1//DTD S2Container//EN"
"http://www.seasar.org/dtd/components21.dtd">
<components>
<component class="org.seasar.framework.convention.impl.NamingConventionImpl">
<initMethod name="addRootPackageName">
<arg>"test"</arg>
</initMethod>
</component>
</components>
2.将jdbc.dicon改成自己的数据库连接,注意加入对应的数据库驱动包。如:classes12.jar
3.修改index.jsp
<tiles:insert beanName="main">
<tiles:put name="title" value="S2Struts SMART deploy Blank" />
<tiles:put name="body" type="string">
Welcome to Seasar!
</tiles:put>
<tiles:put name="body" type="string">
<html:form action="searchShain"> 这里的名字很重要,应该是action类名第一个字母变小写,去掉后面的Action
<bean:define id="form" name="searchShainForm" />
<table class="tablebg">
<tr>
<td class="label"><bean:message key="shain.shainCd" /></td>
<td class="label"><bean:message key="shain.shainNm" /></td>
<td class="label"><bean:message key="shain.shainNmk" /></td>
</tr>
<tr>
<td>
<html:text property="shainCd" styleClass="text"/>
</td>
<td>
<html:text property="shainNm" styleClass="text"/>
</td>
<td>
<html:text property="shainNmk" styleClass="text"/>
</td>
</tr>
</table>
<s2struts:submit action="@{searchShainAction.search}"><bean:message key="button.search" /></s2struts:submit>
</html:form>
</tiles:put>
</tiles:insert>
4. searchShain.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<table class="tablebg">
<tr class="label">
<th><bean:message key="shain.shainCd" /></th>
<th><bean:message key="shain.shainNm" /></th>
<th><bean:message key="shain.shainNmk" /></th>
</tr>
<c:forEach var="e" varStatus="s" items="${shainList}">
<tr class="${s.index %2 == 0 ? 'row-0' : 'row-1'}">
<td class="text"><c:out value="${e.shainCd}" /></td>
<td class="text"><c:out value="${e.shainNm}" /></td>
<td class="text"><c:out value="${e.shainNmk}" /></td>
</tr>
</c:forEach>
</table>
</body>
</html>
5.AbstractAction.java
package test.action;
import org.seasar.struts.annotation.tiger.StrutsActionForward;
public abstract class AbstractAction {
@StrutsActionForward
public static final String SEARCH = "/WEB-INF/view/pages/searchShain.jsp";
}
6.SearchShainAction.java
package test.action;
//@StrutsAction(scope = ScopeType.SESSION, input = AbstractAction.SEARCH)
//@StrutsAction(name = "SearchShainAction", path = "test.action")
public class SearchShainAction extends AbstractAction {
private ShainService shainService;
private SearchShainForm shainForm;
private List<ShainDto> shainList;
public List<ShainDto> getShainList() {
return shainList;
}
@Binding(bindingType = BindingType.MUST)
public void setShainService(ShainService shainService) {
this.shainService = shainService;
}
public SearchShainForm getShainForm() {
return shainForm;
}
public void setShainForm(SearchShainForm shainForm) {
this.shainForm = shainForm;
}
public String search() {
ShainDto dto = new ShainDto();
dto.setShainCd(shainForm.getShainCd());
dto.setShainNm(shainForm.getShainNm());
dto.setShainNmk(shainForm.getShainNmk());
shainList = shainService.getShainDtoList(dto);
return SEARCH;
}
}
7.ShainDao.java
package test.dao;
@S2Dao(bean = Shain.class)
public interface ShainDao {
@SqlFile
List<ShainDto> getShainDtoList(ShainDto dto);
// @Arguments("ShainCd")
// ShainDto getShainDto(String shainCd);
}
8.ShainDao_getShainDtoList.sql
select SHAIN_CD,SHAIN_NM,SHAIN_NMK
from M_SHAIN
/*BEGIN*/
where
/*IF dto.shainCd != ''*/SHAIN_CD = /*dto.shainCd*/'7788'/*END*/
/*IF dto.shainNm != ''*/and SHAIN_NM = /*dto.shainNm*/'SCOTT'/*END*/
/*IF dto.shainNmk != ''*/and SHAIN_NMK = /*dto.shainNmk*/'ANALYST'/*END*/
/*END*/
9.ShainDto.java
package test.dto;
public class ShainDto extends Shain {
private String shainCd;
private String shainNm;
private String shainNmk;
public String getShainCd() {
return shainCd;
}
public void setShainCd(String shainCd) {
this.shainCd = shainCd;
}
public String getShainNm() {
return shainNm;
}
public void setShainNm(String shainNm) {
this.shainNm = shainNm;
}
public String getShainNmk() {
return shainNmk;
}
public void setShainNmk(String shainNmk) {
this.shainNmk = shainNmk;
}
}
10.Shain.java
package test.entity;
@Bean(table = "M_SHAIN")
public class Shain {
public String shainCd;
public String shainNm;
public String shainNmk;
}
11.SearchShainForm.java
package test.form;
@StrutsActionForm
public class SearchShainForm implements Serializable { 自动配置的时候form的名字一定要和Action的名字对应,不然会出错
private static final long serialVersionUID = 1L;
private String shainCd;
private String shainNm;
private String shainNmk;
// private List<ShainDto> shainList;
// public List<ShainDto> getShainList() {
// return shainList;
// }
//
// public void setShainList(List<ShainDto> shainList) {
// this.shainList = shainList;
// }
public String getShainCd() {
return shainCd;
}
public void setShainCd(String shainCd) {
this.shainCd = shainCd;
}
public String getShainNm() {
return shainNm;
}
public void setShainNm(String shainNm) {
this.shainNm = shainNm;
}
public String getShainNmk() {
return shainNmk;
}
public void setShainNmk(String shainNmk) {
this.shainNmk = shainNmk;
}
}
12。ShainService.java
package test.service;
public class ShainService {
private ShainDao shainDao;
@Binding(bindingType = BindingType.MUST)
public void setShainDao(ShainDao employeeDao) {
this.shainDao = employeeDao;
}
public List<ShainDto> getShainDtoList(ShainDto dto) {
return shainDao.getShainDtoList(dto);
}
}