JavaWeb 从后端获取数据用JSP显示
最近在学习JavaWeb,看到下面的代码有些蒙,果然基础还是得一步步来。
效果是这样的,可以看到一条一条的企业信息从数据库获取并显示到页面中,那么这些数据的流程是怎么样的呢?
笔记1
<c:forEach items="${page.list}" var="item">
<tr>
<td><input name="ids" value="${item.id}" type="checkbox"></td>
<td>
${item.name}
</td>
<td>${item.city}</td>
<td>${item.address}</td>
<td>${item.representative}</td>
<td>${item.phone}</td>
<td>${item.industry}</td>
<td>${item.state ==0?'未审核':'已审核'}</td>
<td class="text-center">
<button type="button" class="btn bg-olive btn-xs" onclick='location.href="${ctx}/store/company?operation=toEdit&id=${item.id}"'>编辑</button>
</td>
</tr>
</c:forEach>
- JSP:在html上写Java代码,本质上还是Servlet
- EL表达式:用于简化在JSP中取值的代码书写,浅谈jsp EL表达式取值过程、page和pagecontext的区别
- 原始写法:
request.getAttribute("page.list")
其中page.list
是什么后面再说 - EL写法:
${page.list}
- 原始写法:
- JSTL:一个JSP标签集合,它封装了JSP应用的通用核心功能,使用时需要导包
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
,其中c是标签名,所以这也是为什么foreach
循环前面有个c
的原因- 原始书写
<%for ( int i = 0; i <= ${page.list.length}; i++){ %> //do something <%}%>
var
就是遍历数组时被赋值临时变量,用它就可以调用每一个对象的属性了
<c:forEach items="${page.list}" var="item">
可以看到,JSP是基本,后两个是为了编写JSP页面时更方便而快捷的。
笔记2
有时候可以看到这种标签,<a href="${ctx}/system/sysLog?operation=list" onclick="setSidebarActive(this)" target="iframe">
其中,{ctx}
是什么呢?
笔记3
有时候听视频会常常听到四大域,那四大域是啥的
总结,有了这些基础后,配合后端代码,就大致了解数据从数据获取再用前端显示的一个流程了
控制层代码
// uri:/store/company?operation=list
@WebServlet("/store/company")
public class CompanyServlet extends BaseServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String operation = request.getParameter("operation");
if ("list".equals(operation)) {
this.list(request, response);
}
}
private void list(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
/**进来需要做的事情
* 1. 进入列表页
* 2. 获取数据
* 3. 将数据保存到指定位置
* 4. 跳转页面
* */
//进入列表页
//获取数据
int page = 1;
int size = 5;
if(StringUtils.isNotBlank(request.getParameter("page"))){
page = Integer.parseInt(request.getParameter("page"));
}
if(StringUtils.isNotBlank(request.getParameter("size"))){
size = Integer.parseInt(request.getParameter("size"));
}
PageInfo all = companyService.findAll(page, size);
//将数据保存到指定的位置
request.setAttribute("page",all);
//跳转页面
request.getRequestDispatcher("/WEB-INF/pages/store/company/list.jsp").forward(request,response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doGet(request, response);
}
}
可以看到当进入显示企业信息时list
功能,先是用了一个分页插件获取5条企业信息,当得到这些信息后,就用set.Attribute
中设置,然后JSP页面中用get.Attribute
来获取,搭配JSTL的foreach
标签完成数据的绑定从而成功显示开头的效果。还记得刚刚再EL表达式提到的${page.list}
,其实这里就是与Java数据的交互获取了。
posted on 2022-03-28 14:03 stuMartin 阅读(1377) 评论(0) 编辑 收藏 举报