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

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纳入,就会产生这种效果



相关标签: java 数据

上一篇: ubuntu rar

下一篇: