maven web工程 controller层 servlet模块 编写 添加功能

50 篇文章 0 订阅
10 篇文章 0 订阅

controller层 servlet模块 编写 添加功能

编写 添加功能

请求参数 operation 的值 涉及到两个
toAdd 与 save
toAdd 这要管 新增按钮的 跳转到新增页面
save 是管 新增输入框中输入的数据 提交,
是通过 from表单标签 的action属性来实现
提交的方向是action属性的值

  action="${ctx}/store/company?operation=save"

这里的${ctx}是在 base.jsp页面

<%@ include file="../../base.jsp"%>

的引入文件 中 c:set 标签里

<c:set var="ctx" value="${pageContext.request.contextPath}"/>

${ctx}是 获取pageContext.request.contextPath 页面文本对象 的请求路径

在 toAdd 参数值 对应的toAdd方法中

实际做的是跳转页面

private void toAdd(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //跳转页面 req.getRequestDispatcher("/WEB-INF/pages/store/company/add.jsp").forward(req,resp); }

就直接写跳转页面的代码就行了
将其跳转到
/WEB-INF/pages/store/company/add.jsp
company 企业管理 菜单栏 的 add.jsp 新增页面
注意:这里要进行 数据传递
所以 用req.getRequestDispatcher
跳转页面 发送 forward(req,resp) 请求与响应
新增页面 它是从form标签开始收集表单的数据

在 save 参数值 对应的save方法中

才是真正实现 新增功能的操作
在页面代码中 save 参数值是用

 <button type="button" onclick='document.getElementById("editForm").submit()' class="btn bg-maroon">保存</button>

保存按钮 中的单击事件 document.getElementById("editForm").submit()
通过document 文本对象 获取 form标签 id值 editForm 进行submit()提交操作

在 servlet 模块中
save 新增方法步骤
1.将数据获取到,封装成一个对象
2.调用业务层接口save
3.跳转回到页面list

 private void save(HttpServletRequest req, HttpServletResponse resp) throws IOException {
        //将数据获取到,封装成一个对象
        Company company = BeanUtil.fillBean(req, Company.class, "yyyy-MM-dd");
        //调用业务层接口save
//        CompanyService companyService = new CompanyServiceImpl();
companyService.save(company);

        //跳转回到页面list
        //list(request,response);
resp.sendRedirect(req.getContextPath()+"/store/company?operation=list");

    }

注意:这里要进行 数据传递
所以 用req.getRequestDispatcher
跳转页面 发送 forward(req,resp) 请求与响应

Company company = BeanUtil.fillBean(req, Company.class, "yyyy-MM-dd");

这里传入的参数是 request对象、Company.class 是Company对象的字节码集合,"yyyy-MM-dd"是字符串类型的日期格式模板

 CompanyService companyService = new CompanyServiceImpl();
companyService.save(company);

将这个BeanUtil封装成的Company对象,传入到service层,进行数据的添加操作,在service层对应的添加方法是save,

list(request,response);

这是直接调用本类的list方法传回到页面,
但这样会将带有干扰的数据传回到页面

resp.sendRedirect(req.getContextPath()+"/store/company?operation=list");

用重定向的方式 重新回到 list.jsp页面
注意:这里的重定向是先找到本类的list方法
通过list方法内的跳转语句

req.getRequestDispatcher("/WEB-INF/pages/store/company/list.jsp").forward(req,resp);

重新回到企业管理菜单栏的主界面,就是分页显示数据的页面

为何,要这么麻烦,不直接写 req.getRequestDispatcher呢?
因为 这里是将数据新增到数据库,没有获得任何数据,
重新跳转到list.jsp页面,是要分页显示数据
通过list方法跳转回到list.jsp页面,就能在进行分页显示
否则它不会对数据库的数据在进行显示及分页功能

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

普希托夫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值