SSH学习笔记——Struts2与Spring的整合

今天学习SS的整合时,碰到不少麻烦,要么是配置文件的位置不对,要么是导入的jar包冲突,要么是把配置文件的DTD写错。总之,费了九牛二虎之力才把这两个东西整合在一起。所以,有必要在这里把它记录下来,以备后用。

(1)各文件的放置位置,以及导入的jar包,如下图

(2)各文件源代码:

web.xml

ContractedBlock.gif ExpandedBlockStart.gif View Code
<? 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"
>
< welcome-file-list >
< welcome-file > login.jsp </ welcome-file >
</ welcome-file-list >

< filter >
< filter-name > struts2 </ filter-name >
< filter-class > org.apache.struts2.dispatcher.FilterDispatcher </ filter-class >
</ filter >
< filter-mapping >
< filter-name > struts2 </ filter-name >
< url-pattern > /* </ url-pattern >
</ filter-mapping >
<!-- 根据默认配置文件来初始化Spring容器 -->
< listener >
< listener-class > org.springframework.web.context.ContextLoaderListener </ listener-class >
</ listener >
</ web-app >
struts.xml
ContractedBlock.gif ExpandedBlockStart.gif View Code
<? xml version="1.0" encoding="UTF-8" ?>
<! DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.1//EN"
"http://struts.apache.org/dtds/struts-2.1.dtd"
>
< struts >
<!-- 设置全局编码格式 -->
< constant name ="struts.i18n.encoding" value ="UTF-8" ></ constant >
< package name ="jp" extends ="struts-default" >
< action name ="loginAction" class ="loginActionSpring" >
< result name ="success" > /welcome.jsp </ result >
< result name ="error" > /error.jsp </ result >
</ action >

< action name ="" >
< result > . </ result >
</ action >
</ package >
</ struts >
applicationContext.xml
ContractedBlock.gif ExpandedBlockStart.gif View Code
<? xml version="1.0" encoding="UTF-8" ?>
<! DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd" >
<!-- Spring配置文件的根元素 -->
< beans >

<!-- 部署一个业务逻辑组件 -->
< bean id ="myService" class ="com.jp.model.MyServiceImpl" >
</ bean >
<!-- 配置Struts2控制器对应的Bean实例 -->
< bean id ="loginActionSpring" class ="com.jp.action.LoginAction" >
<!-- 依赖注入业务逻辑组件 -->
< property name ="ims" ref ="myService" ></ property >
</ bean >
</ beans >
LoginAction.java
ContractedBlock.gif ExpandedBlockStart.gif View Code
package com.jp.action;

import com.jp.model.IMyService;
import com.opensymphony.xwork2.Action;

public class LoginAction implements Action {
private String username;
private String password;
private String tip;
private IMyService ims;

public String getUsername() {
return username;
}

public void setUsername(String username) {
this .username = username;
}

public String getPassword() {
return password;
}

public void setPassword(String password) {
this .password = password;
}

public String getTip() {
return tip;
}

public void setTip(String tip) {
this .tip = tip;
}

public void setIms(IMyService ims) {
this .ims = ims;
}

public String execute() throws Exception{
if (ims.valid(getUsername(), getPassword())){
setTip(
" 哈哈,整合成功! " );
return SUCCESS;
}
else
return ERROR;
}

}
IMyService.java
ContractedBlock.gif ExpandedBlockStart.gif View Code
package com.jp.model;

public interface IMyService {
boolean valid(String username,String password);
}

MyServiceImpl.java

ContractedBlock.gif ExpandedBlockStart.gif View Code
package com.jp.model;

public class MyServiceImpl implements IMyService {

public boolean valid(String username, String password) {
// TODO Auto-generated method stub
if (username.equals( " alex " ) && password.equals( " jp " ))
return true ;
else
return false ;
}

}

login.jsp

这个页面很简单,就不贴出全部源代码了,关键部分如下:

<%@taglib prefix="s" uri="/struts-tags" %>

<body>
   <h3>用户登录</h3><br/>
   <s:form action="loginAction">
   <s:textfield name="username" label="用户名"></s:textfield>
   <s:password name="password" label="密码"></s:password>
   <s:submit value="提交"></s:submit>
   </s:form>
  </body>

welcome.jsp关键代码如下:

<%@taglib prefix="s" uri="/struts-tags"%>

<body>
  <s:property value="tip" />
  <br/>
  欢迎你,
  <s:property value="username" />
  <br />
  你的密码是:
  <s:property value="password" />
 </body>

运行结果如下:

转载于:https://www.cnblogs.com/alexrain/archive/2011/03/16/1985935.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值