在使用struts2的if和else标签时,本想在页面做一个判断,list如果存在,那就显示内容,如果不存在那就跳转到登陆页,这是为了防止用户知道这个jsp页面直接输入jsp页面后,进入这个不友好的页面。
修改前代码如下:
<s:form action="createOrders" method="post">
<s:if test="list!=null">
<div id="cartHead">
<span><a href="showAllType.action">回到首頁</a></span>
</div>
<div id="cartBuyUl">
<ul>
<li><input type="checkbox" id="all" οnclick="sel()"></li>
<li>商品图片</li>
<li>商品名称</li>
<li>原价</li>
<li>折后价</li>
<li>数量</li>
<li>操作</li>
</ul>
</div>
<s:iterator value="list" id="l">
<div id=cartBuy>
<div id="cartBuyUl">
<ul>
<li><input type="checkbox" name="checkboxList" value="<s:property value="#l.goodsId" />" /></li>
<li><img src="<%=path %>/<s:property value="#l.picture"/>" width="50px" height="50px" border="0" alt=""></li>
<li><s:property value="#l.name" /></li>
<li><s:property value="#l.price" /></li>
<li><s:property value="#l.discountPrice" /></li>
<li><input type="button" name="less" value="-" οnmοuseοver="unable()"
οnclick="window.location.href='lessQuantity.action?id=<s:property value="#l.goodsId"/>'">
<s:textfield value="%{quantity}" size="2" name="quantity" readonly="true"></s:textfield>
<input type="button" value="+" id="add" οnclick="window.location.href='addQuantity.action?id=<s:property value="#l.goodsId"/>'">
</li>
<li><a href="deleteCartGoods.action?id=<s:property value="#l.goodsId"/>">删除</a></li>
</ul>
</div>
</div>
</s:iterator>
<span id="submitCart"><s:submit label="提交订单"></s:submit></span>
</s:if>
<s:else>
<jsp:forward page="userlogin.jsp" />
</s:else>
</s:form>
修改后具体代码如下:
<s:if test="list!=null">
<s:form action="createOrders" method="post">
<div id="cartHead">
<span><a href="showAllType.action">回到首頁</a></span>
</div>
<div id="cartBuyUl">
<ul>
<li><input type="checkbox" id="all" οnclick="sel()"></li>
<li>商品图片</li>
<li>商品名称</li>
<li>原价</li>
<li>折后价</li>
<li>数量</li>
<li>操作</li>
</ul>
</div>
<s:iterator value="list" id="l">
<div id=cartBuy>
<div id="cartBuyUl">
<ul>
<li><input type="checkbox" name="checkboxList" value="<s:property value="#l.goodsId" />" /></li>
<li><img src="<%=path %>/<s:property value="#l.picture"/>" width="50px" height="50px" border="0" alt=""></li>
<li><s:property value="#l.name" /></li>
<li><s:property value="#l.price" /></li>
<li><s:property value="#l.discountPrice" /></li>
<li><input type="button" name="less" value="-" οnmοuseοver="unable()"
οnclick="window.location.href='lessQuantity.action?id=<s:property value="#l.goodsId"/>'">
<s:textfield value="%{quantity}" size="2" name="quantity" readonly="true"></s:textfield>
<input type="button" value="+" id="add" οnclick="window.location.href='addQuantity.action?id=<s:property value="#l.goodsId"/>'">
</li>
<li><a href="deleteCartGoods.action?id=<s:property value="#l.goodsId"/>">删除</a></li>
</ul>
</div>
</div>
</s:iterator>
<span id="submitCart"><s:submit label="提交订单"></s:submit></span>
</s:form>
</s:if>
<s:else>
<jsp:forward page="userlogin.jsp" />
</s:else>
如果struts2里面有ifelse的判断,并且在form表单里,那么ifelse必须写到form表单外面,不然jsp:forward无效。并不能跳出页面。