java页面后台数据交互(1)
程序员文章站
2024-03-14 17:22:58
...
我们在开发的时候用的是jsp页面,后台采用的是SSM框架结构,前后台的数据交互频繁,不管是从数据库查询数据在jsp页面上显示,还是在页面填写信息保存到数据库中,都需要用到数据传递。
最常见的就是从数据库查询数据在页面上面显示,如list的列表页面,还有edit修改页面,都需要数据在页面上面显示。项目中使用的是SpringMvc,在后台的controller中返回的是modelAndView这个对象
mv.setViewName("weixin/person/evaluation");
// 这个用来确定页面跳转的地址信息,找到对应的jsp页面。指的是相对于WEB-INF/jsp的相对路径,省去.jsp后缀
mv.addObject("totalOrderslist",totalOrderslist);
//这个用来存储数据,在这里面存储的数据可以直接在jsp中使用EL表达式取出其中的值
关于存储的可以是一个String,int,Object,List,字符串可以直接取出,对象通过打点取出属性值,list则需要通过循环取出
不同的取值的方式
//直接存储的字符串等基本数据类型
<input type="hidden" name="user_id" id="user_id" value="${user_id}"/>
//对象取值,通过打点的属性名方式获取存储在对象中的值
<input type="hidden" name="user_id" id="user_id" value="${pd.user_id}"/>
//list的取值方式,通过循环的方式获取每一个对象,通过对象获取里面的属性值
在里面就入了if判断,根据不同的情况来区分显示的不同值
<c:forEach items="${orders.GoodsList}" var="goods" varStatus="vs">
<!--每个物品的开始 -->
<div class="Order_list_middle_content_box " >
<a class="Order_list_content f-s" href="<%=basePath%>app/weishop_toWaitSendOrder?order_id=${orders.order_id}">
<div class="Order_list_content_left">
<img src="${goods.image_url}">
</div>
<div class="Order_list_content_right">
<h1>${goods.goods_name}</h1>
<!--三种规格都存在的时候 -->
<c:if test="${goods.color!=null&&goods.color!=''&&goods.personone!=null&&goods.personone!='' &&goods.persontwo!=null&&goods.persontwo!='' }">
<h6>颜色:${goods.color} 规格:${goods.personone} ${goods.persontwo}</h6>
</c:if>
<!--只有规格一和规格二 -->
<c:if test="${goods.color==null&&goods.personone!=null&&goods.personone!='' &&goods.persontwo!=null&&goods.persontwo!='' }">
<h6> 规格:${goods.personone} ${goods.persontwo}</h6>
</c:if>
<!--只有颜色和规格一的时候 -->
<c:if test="${goods.color!=null&&goods.color!=''&&goods.personone!=null&&goods.personone!='' &&goods.persontwo==null}">
<h6>规格:${goods.color} ${goods.personone} </h6>
</c:if>
<!--只有颜色和规格二的时候 -->
<c:if test="${goods.color!=null&&goods.color!=''&&goods.personone==null &&goods.persontwo!=null&&goods.persontwo!='' }">
<h6>规格:${goods.color} ${goods.persontwo}</h6>
</c:if>
<!--只有规格一的时候 -->
<c:if test="${goods.color==null&&goods.personone!=null&&goods.personone!='' &&goods.persontwo==null}">
<h6>规格:${goods.personone} </h6>
</c:if>
<!--只有规格二的时候 -->
<c:if test="${goods.color==null&&goods.personone==null &&goods.persontwo!=null&&goods.persontwo!='' }">
<h6> 规格:${goods.persontwo}</h6>
</c:if>
<!--只有颜色的时候 -->
<c:if test="${goods.color!=null&&goods.color!=''&&goods.personone==null &&goods.persontwo==null }">
<h6>规格:${goods.color} </h6>
</c:if>
<div class="Order_list_content_right_price f-j">
<b>¥${goods.prise}</b>
<p> X <span>${goods.count}</span> </p>
</div>
</div>
</a>
</div>
<!--每个物品的结束 -->
</c:forEach>
//最常用的页面if判断,用来区分不同的情况
<c:if test="${goods.color==null&&goods.personone!=null&&goods.personone!='' &&goods.persontwo==null}">
<h6>规格:${goods.personone} </h6>
</c:if>
关于动态的给name赋值,关键点在于
${vs.index+1} 它相当于for循环中的i的当前值
<c:forEach items="${rule}" var="var" varStatus="vs">
<tr style="text-align: center;">
<td class='center' style="width: 30px;">${vs.index+1}</td>
<c:if test="${pd.color!=null}">
<td>${var.color} <input type="hidden" name="color${vs.index+1}" value="${var.color}"/></td>
</c:if>
<c:if test="${pd.person1!=null}">
<td>${var.personone} <input type="hidden" name="one${vs.index+1}" value="${var.personone}"/></td>
</c:if>
<c:if test="${pd.person2!=null}">
<td>${var.persontwo} <input type="hidden" name="two${vs.index+1}" value="${var.persontwo}"/></td>
</c:if>
<td>${pd.bianma}<input type="hidden" name="coding${vs.index+1}" value="${pd.bianma}"/></td>
<%-- <td><a href="<%=basePath%>uploadFiles/tiaoXingCode/${pd.path}" title="Bar code " class="bwGal"><img src="<%=basePath%>uploadFiles/tiaoXingCode/${pd.path}" alt="编码格式不对" width="100"><!-- </a> --></td> --%>
<td><input type="text" id="price${vs.index+1}" name="price${vs.index+1}" value="" maxlength="9" ></td>
</tr>
</c:forEach>
关于循环,不止可以循环一次,原理同后台中的双重或者多重for循环一样,
<c:forEach items="${rule}" var="var" varStatus="vs"> </c:forEach>
每一个foreach相当于一个for循环,可以循环多次 list放入object,然后object被新的list纳入,就会产生这种效果上一篇: ubuntu rar