纳税服务系统一(用户模块)【简单增删改查、日期组件、上传和修改头像】(二)

简介: 为了更好地掌握SSH的用法,使用一个纳税服务系统来练手…..搭建SSH框架环境在上一篇已经详细地说明了。

在Struts配置文件中配置


<?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>
    <package name="user-action" extends="struts-default" namespace="/user">
        <action name="user_*" class="zhongfucheng.user.action.UserAction" method="{1}">
        </action>
    </package>
</struts>
  • 添加user模块的Struts配置文件到总配置文件中
<!--User模块-->
    <include file="zhongfucheng/user/config/user-struts.xml"/>


完成美工设计页面显示


对美工给的页面进行调整


导入到项目中:

0.png

这里写图片描述

我们发现在JSP页面中,以下的代码是经常会出现的,因此我们把它封装一下:

1.jpg

这里写图片描述

创建一个公共文件,封装经常用到的jsp页面:

2.jpg

这里写图片描述

要使用的地方,直接导入就行了:


<head>
    <%@include file="/common/header.jsp"%>
    <title>用户管理</title>
</head>

接下来只要对各个功能进行填充逻辑代码,就可以了。


添加用户UI


public String addUI() {
        return "addUI";
    }

效果如图所示:我们的头像和角色先不做,把其他的先做了再看看。

3.jpg

这里写图片描述


确定添加用户


写上我们请求的路径:


/*************注入Service************************/
    @Qualifier("userServiceImpl")
    @Autowired
    private UserService userServiceImpl;
    /************数据自动封装,给出setter和getter*************************/
    private User user;
    public User getUser() {
        return user;
    }
    public void setUser(User user) {
        this.user = user;
    }
    /************得到Service返回的数据*************************/
    private List<User> userList;
    public String add() {
    userServiceImpl.save(user);
    //跳转到列表显示页面
    return "list";
    }


  • 配置跳转到列表显示页面的result【Action重定向的方式,防止刷新再次请求】


<!--返回列表展示页面,重定向到列表展示-->
            <result name="list" type="redirectAction">
                <param name="actionName">user_listUI</param>
            </result>
  • 效果:下面的列表展示还没有做呢,但是添加用户的效果已经做出来了。

4.gif这里写图片描述



列表展示


/************得到Service返回的数据*************************/
    //这里一定要给setter和getter方法,这样JSP才能够得到属性。不然就得不到了!!!我在这里弄了很久!!!!
    private List<User> userList;
    public List<User> getUserList() {
        return userList;
    }
    public void setUserList(List<User> userList) {
        this.userList = userList;
    }
    public String listUI() {
        userList = userServiceImpl.findObjects();
        return "listUI";
    }


JSP通过iterator得到数据,直接写就行了。因为Action中该属性有getter方法


<s:iterator value="userList">
        <tr bgcolor="f8f8f8">
            <td align="center"><input type="checkbox" name="selectedRow" value="<s:property value="id"/> "/></td>
            <td align="center"><s:property value="name"/></td>
            <td align="center"><s:property value="account"/></td>
            <td align="center"><s:property value="dept"/></td>
            <td align="center"><s:property value="gender?'男':'女'"/></td>
            <td align="center"><s:property value="email"/></td>
            <td align="center">
                <a href="javascript:doEdit(<s:property value="id"/>)">编辑</a>
                <a href="javascript:doDelete(<s:property value="id"/>)">删除</a>
            </td>
        </tr>
        </s:iterator>

image.gif这里写图片描述



修改功能

5.jpg

image.gif这里写图片描述


public String editUI() {
        //外边已经传了id过来了,我们要找到id对应的User
        if (user.getId() != null && user != null) {
            //直接获取出来,后面JSP会根据User有getter就能读取对应的信息!
            user = userServiceImpl.findObjectById(this.user.getId());
    }
        return "editUI";
    }
  • JSP修改用户的界面是不用显示id的,但是我们在修改用户的时候,是根据id来修改的。因此我们加入一个隐藏域
<s:hidden name="user.id"/>
  • 指定处理的路径:
action="${basePath}user/user_edit.action"
  • 修改的方法:
public String edit() {
        //Struts2会自动把JSP带过来的数据封装到User对象上
        if (user.getId() != null && user != null) {
            userServiceImpl.update(user);
        }
        //跳转回列表展示
        return "list";
    }
  • 效果:

image.gif6.gif这里写图片描述



删除功能


delete方法就非常简单了:

function doDelete(id) {
            document.forms[0].action = "${basePath}user/user_delete.action?user.id="+id;
            document.forms[0].submit();
        }
public String delete() {
        if (user.getId() != null && user != null) {
            userServiceImpl.delete(user.getId());
        }
        return "list";
    }

这里写图片描述


批量删除

7.jpg这里写图片描述

响应点击事件:

function doDeleteAll() {
            document.forms[0].action = "${basePath}user/user_deleteSelect.action";
            document.forms[0].submit();
        }
  • Action使用一个String[]接收复选框来过来的数据
private String[] selectedRow;
    public String[] getSelectedRow() {
        return selectedRow;
    }
    public void setSelectedRow(String[] selectedRow) {
        this.selectedRow = selectedRow;
    }
    public String deleteSelect() {
        for (String s : selectedRow) {
            userServiceImpl.delete(s);
        }
        return "list";
    }


前面我们在写用户模块的时候还有一些没有解决掉的问题:

8.jpg

这里写图片描述

目录
打赏
0
0
0
0
1281
分享
相关文章
基于ssm的社区物业管理系统,附源码+数据库+论文+任务书
社区物业管理系统采用B/S架构,基于Java语言开发,使用MySQL数据库。系统涵盖个人中心、用户管理、楼盘管理、收费管理、停车登记、报修与投诉管理等功能模块,方便管理员及用户操作。前端采用Vue、HTML、JavaScript等技术,后端使用SSM框架。系统支持远程安装调试,确保顺利运行。提供演示视频和详细文档截图,帮助用户快速上手。
67 17
基于ssm的超市会员(积分)管理系统,附源码+数据库+论文,包安装调试
本项目为简单内容浏览和信息处理系统,具备管理员和员工权限。管理员可管理会员、员工、商品及积分记录,员工则负责积分、商品信息和兑换管理。技术框架采用Java编程语言,B/S架构,前端使用Vue+JSP+JavaScript+Css+LayUI,后端为SSM框架,数据库为MySQL。运行环境为Windows,JDK8+Tomcat8.5,非前后端分离的Maven项目。提供演示视频和详细文档,购买后支持免费远程安装调试。
88 19
[Java计算机毕设]基于ssm的OA办公管理系统的设计与实现,附源码+数据库+论文+开题,包安装调试
OA办公管理系统是一款基于Java和SSM框架开发的B/S架构应用,适用于Windows系统。项目包含管理员、项目管理人员和普通用户三种角色,分别负责系统管理、请假审批、图书借阅等日常办公事务。系统使用Vue、HTML、JavaScript、CSS和LayUI构建前端,后端采用SSM框架,数据库为MySQL,共24张表。提供完整演示视频和详细文档截图,支持远程安装调试,确保顺利运行。
91 17
基于ssm的网络直播带货管理系统,附源码+数据库+论文
该项目为网络直播带货网站,包含管理员和用户两个角色。管理员可进行主页、个人中心、用户管理、商品分类与信息管理、系统及订单管理;用户可浏览主页、管理个人中心、收藏和订单。系统基于Java开发,采用B/S架构,前端使用Vue、JSP等技术,后端为SSM框架,数据库为MySQL。项目运行环境为Windows,支持JDK8、Tomcat8.5。提供演示视频和详细文档截图。
59 10
基于ssm的台球厅管理系统,附源码+数据库+论文
本项目为新锐台球厅管理系统,支持管理员和会员两种角色。管理员可进行会员管理、台球桌管理、订单管理等;会员可查看台球桌、预约、购买商品等。技术框架基于Java,采用B/S架构,前端使用Vue+HTML+JavaScript+CSS+LayUI,后端使用SSM框架,数据库为MySQL。运行环境为Windows,JDK8+MySQL5.7+Tomcat8.5。提供演示视频及详细文档截图。
亚太唯一!阿里云连续5年入选Gartner®云数据库管理系统「领导者」象限
亚太唯一!阿里云连续5年入选Gartner®云数据库管理系统「领导者」象限
阿里云连续5年进入领导者象限!Gartner®云数据库管理系统报告发布
阿里云连续5年进入领导者象限!Gartner®云数据库管理系统报告发布
55 3
消防行业如何借助时序数据库 TDengine 打造高效的数据监控与分析系统
本篇文章来自“2024,我想和 TDengine 谈谈”征文活动的优秀投稿,深入探讨了如何在消防行业中运用 TDengine 进行业务建模。文章重点介绍了如何通过 TDengine 的超级表、标签设计和高效查询功能,有效管理消防监控系统中的时序数据。作者详细阐述了实时监控、报警系统以及历史数据分析在消防行业中的应用,展示了 TDengine 在数据压缩、保留策略和分布式架构下的强大优势。
35 0
阿里云连续五年获评为Gartner®云数据库管理系统魔力象限领导者
阿里云连续五年获评为Gartner®云数据库管理系统魔力象限领导者

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等