亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

SSH整合終結版(三)

系統 1675 0

本文的前面兩部分已對Spring和Hibernate兩大框架進行了集成,下面繼續對Struts進行整合。

第一步,原來我們對spring容器實例化要手工操作,現在我們通過在web.xml中配置監聽器來對Spring容器進行實例化。代碼如下:

文件名:web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
?xmlns=" http://java.sun.com/xml/ns/javaee "
?xmlns:xsi=" http://www.w3.org/2001/XMLSchema-instance "
?xsi:schemaLocation=" http://java.sun.com/xml/ns/javaee
? http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd ">

????? <!-- 在web中實例化容器 -->
?? <context-param>
?? <param-name>contextConfigLocation</param-name>
?? <param-value>classpath:beans.xml</param-value>
?? </context-param>
? <!-- 對Spring容器進行實例化-->
? <listener>
??? <listener-class> org.springframework.web.context.ContextLoaderListener</listener-class>
? </listener>

?</web-app>

第二步,在web.xml中配置struts。

<!-- Standard Action Servlet Configuration (with debugging) -->
?? <servlet>
???? <servlet-name>action</servlet-name>
???? <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
???? <init-param>
?????? <param-name>config</param-name>
?????? <param-value>/WEB-INF/struts-config.xml</param-value>
???? </init-param>
???? <init-param>
?????? <param-name>debug</param-name>
?????? <param-value>2</param-value>
???? </init-param>
???? <init-param>
?????? <param-name>detail</param-name>
?????? <param-value>2</param-value>
???? </init-param>
???? <load-on-startup>2</load-on-startup>
?? </servlet>
????????
?? <!-- Standard Action Servlet Mapping -->
?? <servlet-mapping>
???? <servlet-name>action</servlet-name>
???? <url-pattern>*.do</url-pattern>??
?? </servlet-mapping>

?第三步,在WEB-INF目錄下編寫struts-config.xml文件。代碼如下:

<?xml version="1.0" encoding="utf-8" ?>

<!DOCTYPE struts-config PUBLIC
????????? "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"
????????? " http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd ">
<struts-config>
?<action-mappings>
??? <action path="/person/list" type="com.lyk.web.actions.PersonAction" validate="false">
??? ? ??<forward name="list" path="/WEB-INF/page/personlist.jsp"/>
??? </action>
?????</action-mappings>

?<controller>
????? <set-property property="processorClass"
?????????????? value="org.springframework.web.struts.DelegatingRequestProcessor"/>
?</controller>
</struts-config>

?其中已配置了一個action,下面我們對該action進行創建。代碼如下:

package com.lyk.web.actions;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;


import com.lyk.service.PersonService;

public class PersonAction extends Action {
?@Resource PersonService personService;

?@Override
?public ActionForward execute(ActionMapping arg0, ActionForm arg1, HttpServletRequest arg2, HttpServletResponse arg3) throws Exception {
??// TODO 自動生成方法存根
??
?/*?WebApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext
??????????????????????? (this.getServlet().getServletContext());
?? PersonService? personService = (PersonService)ctx.getBean("personService");*/
?? arg2.setAttribute("persons", personService.getPersons());
?? return arg0.findForward("list");
?}

}

第四步,編寫View層JSP頁面( ?<forward name="list" path="/WEB-INF/page/personlist.jsp"/> ),在WEB-INF/page目錄下創建personlist.jsp頁面。代碼如下:

文件名:personlist.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri=" http://java.sun.com/jsp/jstl/core "? prefix="c"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
? <head>
??? <base href="<%=basePath%>">
??? <title>人員列表</title>???
?<meta http-equiv="pragma" content="no-cache">
?<meta http-equiv="cache-control" content="no-cache">
?<meta http-equiv="expires" content="0">???
?<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
?<meta http-equiv="description" content="This is my page">
?<!--
?<link rel="stylesheet" type="text/css" href="styles.css">
?-->

? </head>
? <body>
?? 人員列表:<br>
?? <c:forEach items="${persons}" var="person">
?id=${person.id},name= ${person.name} <br>
?</c:forEach>
???? </body>
</html>
第五步,由于在Action的編寫中我們采用了Spring的依賴注入功能對personService進行了注入,所以,我們需要在beans.xml文件中加入如下代碼:

?????????? <bean id="personService" class="com.lyk.service.imp.PersonServiceBean" />
?????????? <bean id="smsService" class="com.lyk.service.imp.SMSServiceBean" />
??????????
?????????? <bean name="/person/list" class="com.lyk.web.actions.PersonAction" />
?????????? <bean name="/sms/list" class="com.lyk.web.actions.SMSAction" />

這樣,實現了action類編寫的簡潔化。

最后,發布SSH項目,打開瀏覽器進行測試,輸入 http://localhost:8080/SSH/person/list.do ,輸出結果為(示例):

人員列表:
id=1,name= lyk
id=2,name= ii
id=3,name= 大P
id=4,name= 小S
如果看到此結果,則我們的SSH整合項目就成功了,哈哈,恭喜了。

SSH整合終結版(三)


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 国产成人亚洲毛片 | 午夜精品aaa国产福利 | 99r精品视频| 欧美成人中文字幕dvd | 亚洲日产2021三区在线 | 国产一区二区三区免费看 | 国产精品久久一区一区 | 久久久久久99精品 | 深夜福利国产 | 成人a毛片一级 | 国产精品久久一区 | a及毛片| 久久新地址 | 狠狠色丁香婷婷综合小时婷婷 | 四虎精品成人免费影视 | 亚洲综合无码一区二区 | 国产一区二区精品久久 | 国产午夜精品尤物福利视频 | 午夜在线观看cao | 精品国产一区二区三区香蕉沈先生 | 国产91在线播放边 | 亚洲国产成人在线 | 精品久久久久久久久中文字幕 | 久久亚洲精品人成综合网 | 日日噜噜爽爽狠狠视频 | 四虎视频网站 | 久草精品在线播放 | 国产伦精品一区三区视频 | 国产毛片精品 | 综合久久久久综合 | 国产亚洲日本人在线观看 | 欧美久久综合 | 色综合a | 天天干天天爽天天射 | 欧美70一80老妇性大片 | 欧美一级高清在线观看 | 日本a级精品一区二区三区 日本a毛片在线播放 | 人成精品视频三区二区一区 | 欧美成视频一theporn | 日韩欧美视频一区 | 奇米影视第四色首页 |