热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

Spring与Struts整合之使用自动装配操作示例

这篇文章主要介绍了Spring与Struts整合之使用自动装配操作,结合实例形式详细分析了Spring与Struts整合使用自动装配具体操作步骤与相关实现技巧,需要的朋友可以参考下

本文实例讲述了Spring与Struts整合之使用自动装配操作。分享给大家供大家参考,具体如下:

一 Web配置

<&#63;xml version="1.0" encoding="GBK"&#63;>

  
  
    org.springframework.web.context.ContextLoaderListener
    
  
  
  
    struts2
    org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
  
  
  
    struts2
    /*
  


二 applicationContext.xml配置

<&#63;xml version="1.0" encoding="GBK"&#63;>

  
  


三 视图

1 loginForm.jsp

<%@ page cOntentType="text/html; charset=GBK" language="java" errorPage="" %>
<%@taglib prefix="s" uri="/struts-tags"%>



  


用户登录

2 welcome.jsp

<%@ page cOntentType="text/html; charset=GBK" language="java" errorPage="" %>
<%@taglib prefix="s" uri="/struts-tags"%>



  


  您已经登录!

3 error.jsp

<%@ page cOntentType="text/html; charset=GBK" language="java" errorPage="" %>



  


  您不能登录!



四 Struts配置

<&#63;xml version="1.0" encoding="GBK"&#63;>



  
  
  
  
  
    
    
      
      /WEB-INF/content/error.jsp
      /WEB-INF/content/welcome.jsp
    
    
    
      /WEB-INF/content/{1}.jsp
    
  


五 action

package org.crazyit.app.action;
import com.opensymphony.xwork2.ActionSupport;
import org.crazyit.app.service.*;
public class LoginAction extends ActionSupport
{
  // 下面是用于封装用户请求参数的两个成员变量
  private String username;
  private String password;
  // 系统所用的业务逻辑组件
  private MyService ms;
  // 设值注入业务逻辑组件所必需的setter方法
  public void setMs(MyService ms)
  {
    this.ms = ms;
  }
  // username的setter和getter方法
  public void setUsername(String username)
  {
    this.username = username;
  }
  public String getUsername()
  {
    return this.username;
  }
  // password的setter和getter方法
  public void setPassword(String password)
  {
    this.password = password;
  }
  public String getPassword()
  {
    return this.password;
  }
  // 处理用户请求的execute方法
  public String execute() throws Exception
  {
    // 调用业务逻辑组件的validLogin()方法
    // 验证用户输入的用户名和密码是否正确
    if (ms.validLogin(getUsername(), getPassword()) > 0)
    {
      addActionMessage("哈哈,整合成功!");
      return SUCCESS;
    }
    return ERROR;
  }
}

六 Service

1 接口

package org.crazyit.app.service;
public interface MyService
{
  int validLogin(String username , String pass);
}

2 实现类

package org.crazyit.app.service.impl;
import org.crazyit.app.service.*;
public class MyServiceImpl implements MyService
{
  public int validLogin(String username , String pass)
  {
    // 此处只是简单示范,故直接判断用户名、密码是否符合要求
    if ( username.equals("crazyit.org")
      && pass.equals("leegang") )
    {
      return 99;
    }
    return -1;
  }
}

七 测试

更多关于java相关内容感兴趣的读者可查看本站专题:《Spring框架入门与进阶教程》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》

希望本文所述对大家java程序设计有所帮助。


推荐阅读
  • 本文讨论了Alink回归预测的不完善问题,指出目前主要针对Python做案例,对其他语言支持不足。同时介绍了pom.xml文件的基本结构和使用方法,以及Maven的相关知识。最后,对Alink回归预测的未来发展提出了期待。 ... [详细]
  • 本文介绍了Java的集合及其实现类,包括数据结构、抽象类和具体实现类的关系,详细介绍了List接口及其实现类ArrayList的基本操作和特点。文章通过提供相关参考文档和链接,帮助读者更好地理解和使用Java的集合类。 ... [详细]
  • Android系统移植与调试之如何修改Android设备状态条上音量加减键在横竖屏切换的时候的显示于隐藏
    本文介绍了如何修改Android设备状态条上音量加减键在横竖屏切换时的显示与隐藏。通过修改系统文件system_bar.xml实现了该功能,并分享了解决思路和经验。 ... [详细]
  • Spring常用注解(绝对经典),全靠这份Java知识点PDF大全
    本文介绍了Spring常用注解和注入bean的注解,包括@Bean、@Autowired、@Inject等,同时提供了一个Java知识点PDF大全的资源链接。其中详细介绍了ColorFactoryBean的使用,以及@Autowired和@Inject的区别和用法。此外,还提到了@Required属性的配置和使用。 ... [详细]
  • Servlet多用户登录时HttpSession会话信息覆盖问题的解决方案
    本文讨论了在Servlet多用户登录时可能出现的HttpSession会话信息覆盖问题,并提供了解决方案。通过分析JSESSIONID的作用机制和编码方式,我们可以得出每个HttpSession对象都是通过客户端发送的唯一JSESSIONID来识别的,因此无需担心会话信息被覆盖的问题。需要注意的是,本文讨论的是多个客户端级别上的多用户登录,而非同一个浏览器级别上的多用户登录。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • 本文介绍了一些Java开发项目管理工具及其配置教程,包括团队协同工具worktil,版本管理工具GitLab,自动化构建工具Jenkins,项目管理工具Maven和Maven私服Nexus,以及Mybatis的安装和代码自动生成工具。提供了相关链接供读者参考。 ... [详细]
  • 本文介绍了一种图片处理应用,通过固定容器来实现缩略图的功能。该方法可以实现等比例缩略、扩容填充和裁剪等操作。详细的实现步骤和代码示例在正文中给出。 ... [详细]
  • 本文介绍了H5游戏性能优化和调试技巧,包括从问题表象出发进行优化、排除外部问题导致的卡顿、帧率设定、减少drawcall的方法、UI优化和图集渲染等八个理念。对于游戏程序员来说,解决游戏性能问题是一个关键的任务,本文提供了一些有用的参考价值。摘要长度为183字。 ... [详细]
  • STL迭代器的种类及其功能介绍
    本文介绍了标准模板库(STL)定义的五种迭代器的种类和功能。通过图表展示了这几种迭代器之间的关系,并详细描述了各个迭代器的功能和使用方法。其中,输入迭代器用于从容器中读取元素,输出迭代器用于向容器中写入元素,正向迭代器是输入迭代器和输出迭代器的组合。本文的目的是帮助读者更好地理解STL迭代器的使用方法和特点。 ... [详细]
  • 本文介绍了互联网思维中的三个段子,涵盖了餐饮行业、淘品牌和创业企业的案例。通过这些案例,探讨了互联网思维的九大分类和十九条法则。其中包括雕爷牛腩餐厅的成功经验,三只松鼠淘品牌的包装策略以及一家创业企业的销售额增长情况。这些案例展示了互联网思维在不同领域的应用和成功之道。 ... [详细]
  • 本文介绍了Cocos2dx学习笔记中的更新函数scheduleUpdate、进度计时器CCProgressTo和滚动视图CCScrollView的用法。详细介绍了scheduleUpdate函数的作用和使用方法,以及schedule函数的区别。同时,还提供了相关的代码示例。 ... [详细]
author-avatar
手机用户2502869895
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有