最近在開發一個簡單的jsp企業網站,由于使用jsp+servlet配置servlet比較麻煩是以決定使用struts2架構代替servlet,下面是快速搭建一個struts2開發架構的步驟
1.加入struts2的jar,所需的基本jar如下圖,後面開發如果還需要添加則加上就是
2.在web.xml裡配置struts2的filter,如下圖
3.在src下建一個struts.xml的配置檔案,該檔案是通路路徑的配置檔案 源碼如下:
<?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.action.extension" value="do"></constant>
<constant name="struts.devMode" value="true" />
<package name="com" namespace="" extends="struts-default">
<action name="doPhotoList" method="doPhotoList" class="com.action.CompanyPhotoAction" />
<action name="doPhotoListByPage" method="doPhotoListByPage" class="com.action.CompanyPhotoAction">
<result name="success">/company_photo.jsp</result>
</action>
<action name="doNewsListByPage" method="doNewsListByPage" class="com.action.NewCenterAction">
<result name="success">/news_center.jsp</result>
</action>
<action name="doCustomerReq" method="doCustomerReq" class="com.action.CustomerReqAction" />
</package>
</struts>
----------------------------------------------------------------------------------
<constant name="struts.action.extension" value="do"></constant> 設定通路字尾為.do ,struts2預設的通路字尾是.action
3.開發一個action,有三種實作方式
a.一個普通的javaBean
b.實作Action接口
c.繼承ActionSuport類 建議使用
代碼:
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import net.sf.json.JSONArray;
import org.apache.struts2.ServletActionContext;
import com.entity.CompanyPhotoVo;
import com.service.impl.CompanyPhotoServiceImpl;
import com.service.inf.ICompanyPhotoService;
import com.util.page.Page;
import com.opensymphony.xwork2.ActionSupport;
public class CompanyPhotoAction extends ActionSupport {
private static final long serialVersionUID = 1L;
private ICompanyPhotoService companyPhotoServiceImpl = new CompanyPhotoServiceImpl();
private Integer pageNo;
private Integer pageSize;
public Integer getPageNo() {
return pageNo;
}
public void setPageNo(Integer pageNo) {
this.pageNo = pageNo;
}
public Integer getPageSize() {
return pageSize;
}
public void setPageSize(Integer pageSize) {
this.pageSize = pageSize;
}
public String doPhotoListByPage(){
HttpServletRequest request = ServletActionContext.getRequest();
Page<CompanyPhotoVo> page = new Page<CompanyPhotoVo>();
try {
page = companyPhotoServiceImpl.doCompanyPhotoList(pageNo, pageSize);
} catch (Exception e) {
e.printStackTrace();
}
request.setAttribute("page", page);
return "success";
}
}
4.jsp頁面展示(帶有分頁)
<!--圖集 開始-->
<div class="content">
<div class="cmain" id="gallery">
<ul>
<s:iterator value="#request.page.list" var="photo">
<li>
<a href="photos/<s:property value='#photo.bigPath' />" target="_blank" rel="external nofollow" title="">
<img src="photos/<s:property value='#photo.smallPath' />" alt="" />
</a>
</li>
</s:iterator>
</ul>
</div>
<div class="page">
<div class="p-page">
<form id="pageForm" name="" method="post" action="<%=path %>/doPhotoListByPage.do">
<input type="hidden" id="hPageNo" name="pageNo" value="<s:property value='#request.page.pageNo' />"/>
<input type="hidden" id="hPageSize" name="pageSize" value="<s:property value='#request.page.pageSize' />"/>
<input type="hidden" id="hTotalPage" value="#request.page.getTotalPage()"/>
<div><input type="button" name="" class="page-up" value="" οnclick="choosePage('page-up')"/></div>
<s:bean name="org.apache.struts2.util.Counter" id="counter">
<s:param name="first" value="1" />
<s:param name="last" value="#request.page.getTotalPage()" />
<s:iterator var="count">
<s:if test="#count == #request.page.pageNo">
<div><input type="button" name="" class="inputfocus" value="<s:property value="#count"/>" /></div>
</s:if>
<s:else>
<div><input type="button" name="" class="page-no" value="<s:property value="#count"/>" οnclick="choosePage(<s:property value='#count'/>)"/></div>
</s:else>
</s:iterator>
</s:bean>
<div><input type="button" name="" class="page-down" value="" οnclick="choosePage('page-down')"/></div>
</form>
</div>
</div>
</div>
<!--圖集 結束-->