日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

SSH整合終結版(三)

系統 1858 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條評論
主站蜘蛛池模板: 贵南县| 同江市| 田阳县| 仲巴县| 涪陵区| 靖边县| 通渭县| 和平区| 桐庐县| 广平县| 呼和浩特市| 杂多县| 攀枝花市| 姚安县| 翁源县| 建德市| 和平县| 英德市| 广河县| 弋阳县| 台南市| 保康县| 巴林左旗| 汉源县| 喜德县| 新疆| 马关县| 曲沃县| 微山县| 洛川县| 如东县| 竹溪县| 梁山县| 兰西县| 五河县| 肇源县| 长子县| 嘉峪关市| 吉首市| 恩施市| 天台县|