天天看點

使用struts2代替servlet開發j2ee,快速搭建struts2開發環境

最近在開發一個簡單的jsp企業網站,由于使用jsp+servlet配置servlet比較麻煩是以決定使用struts2架構代替servlet,下面是快速搭建一個struts2開發架構的步驟

1.加入struts2的jar,所需的基本jar如下圖,後面開發如果還需要添加則加上就是

使用struts2代替servlet開發j2ee,快速搭建struts2開發環境

2.在web.xml裡配置struts2的filter,如下圖

使用struts2代替servlet開發j2ee,快速搭建struts2開發環境

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>

<!--圖集 結束-->

繼續閱讀