欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

SSH03---实现用户管理组功能

程序员文章站 2022-04-26 10:00:42
...

1、显示组信息

    /**
     * 展示所有组信息
     */
    public String list() {
        //将gl放在ActionContext
        ActionContext.getContext().put("gl", groupService.listAllGroup());
        return SUCCESS;
    }

list.jsp

<%@ page language="java" contentType="text/html; charset=utf8"
    pageEncoding="utf8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf8">
<title>用户组展示</title>
</head>
<body>
<!--使用ActionContext.getContext().put("gl", groupService.listAllGroup()); 将gl放到了ActionContext中, 所需要使用#gl获取
<s:iterator value="#gl">
${id}---><a href="group_show.action?gid=${id}">${groupName }</a>&nbsp;  
<a href="group_delete.action?id=${id}">删除</a>&nbsp;
<a href="group_updateInput.action?id=${id}">更新</a><br>
</s:iterator>
<s:debug></s:debug>
</body>
</html>

结果实现所有组信息

SSH03---实现用户管理组功能

2、显示某个组的信息

    /** 
     *当点击一个组,查看组内信息
     */
    public String show() {
        //接收组id, 
        System.out.println(gid);
        group = groupService.load(gid);
        System.out.println(group);
        return SUCCESS;
    }

/SSH01_struts2/WebContent/WEB-INF/jsp/group/show.jsp

<%@ page language="java" contentType="text/html; charset=utf8"
    pageEncoding="utf8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf8">
<title>组信息展示</title>
</head>
<body>
${group.id}--->${group.groupName}
<s:debug></s:debug>
</body>
</html>

3、删除组

list.jsp中

<a href="group_delete.action?id=${id}">删除</a>&nbsp;

删除之后, 跳转到list界面

    /**
     * 删除组操作
     * @return
     */
    public String delete() {
        groupService.delete(group.getId());
        //设置跳转的url
        ActionContext.getContext().put("url", "/group_list.action");
        //删除时候重新调到展示, 客户端跳转
        return "redirect";
    }

4、修改组信息

##通过 ?id=${id},将id的值传递
<a href="group_updateInput.action?id=${id}">更新</a><br>

updateInput()

    /**
     *list界面 点击更新,跳到更新输入界面
     * @return
     */
    public String updateInput() {

        Group tg = groupService.load(group.getId());
        //System.out.println(tg);
        //不可以使用group=tg, 将获取的是一个新的对象
        //将值传递到update.jsp
        group.setGroupName(tg.getGroupName());
        return SUCCESS;
    }

通过<s:hidden name=id>向update.jsp传递值

<%@ page language="java" contentType="text/html; charset=utf8"
    pageEncoding="utf8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf8">
<title>更新组</title>
</head>
<body>
<s:form action="group_update" method="post">
<s:hidden name="id"/>
    <s:textfield label="组名称" name="groupName"/>
    <s:submit  value="提交更新" />
</s:form>
<s:debug></s:debug>
</body>
</html>

update()

    /**
     * 更新操作
     * @return
     */
    public String update() {
        //获取数据中的数据
        Group tg = groupService.load(group.getId());
        //更新名字
        tg.setGroupName(group.getGroupName());
        //更新组
        groupService.updae(tg);

        ActionContext.getContext().put("url", "/group_list.action");
        //删除时候重新调到展示, 客户端跳转
        return "redirect";
    }

5、添加组

    /**
     *添加输入 
     * @return
     */
    public String addInput() {
        return SUCCESS;
    }
    /**
     * 添加组
     */
    public String add() {
        groupService.add(group);
        ActionContext.getContext().put("url", "/group_list.action");
        return "redirect";
    }

如果添加空白信息

SSH03---实现用户管理组功能

这个需要我们做一个判断, 不要添加空信息, 需要在GroupAction中添加一个判断方法

    /**
     * 服务器端验证add的方法
     */
    public void validateAdd() {
        if(group.getGroupName()==null||"".equals(group.getGroupName().trim())) {
            this.addFieldError("name","组名称不能为空");
        }
    }

SSH03---实现用户管理组功能

单例问题

重新打开一个界面http://localhost:8080/SSH01_struts2/group_addInput.action, 为什么去找addInputInput.jsp

SSH03---实现用户管理组功能

输入http://localhost:8080/SSH01_struts2/group_delete.action也一样

SSH03---实现用户管理组功能

错误一直存在, 而且GroupAction是单例, 所以所有的界面都存在这个问题。
所以也证明了GroupAction必须使用多例@Scope("prototype")

@Controller(value="groupAction")
//@Scope("prototype")
相关标签: ssh