以前,我不喜欢在jsp页面中,直接使用java代码块,镶嵌java代码,但是工作之后,使用了这种情况之后,我改变了初衷,其实它也有他的方便之处呀!
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%> <%@ page import="java.util.*,org.springframework.context.ApplicationContext"%> <%@ page import="org.springframework.web.context.support.WebApplicationContextUtils"%> <%@page import="com.hdsm.xxcj.tnbhzsfb.*;"%> <%@ include file="../../public/jsp_top.jsp"%> <% String path = request.getContextPath(); String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/"; TnbsfbMain main = (TnbsfbMain) ctx.getBean("tnbsfbmain"); String str = request.getParameter("id").toString(); Iterator it = main.find_onesfb(str); %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>编辑随访记录</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> </head> <body> <form name="form1" action="" target="middleFrame" method="post"> <% while (it.hasNext()) { Map map = (Map) it.next(); %> <table class="table_info2" border="1"> <tr style="border: thin"> <td colspan="5" align="center"> <h3> <strong>修改糖尿病患者随访记录</strong> </h3> <input type="hidden" name="id" id="id" value="<%=str%>"> <input type="hidden" name="CV5101_27_ALL" id="CV5101_27_ALL" value=""> </td> </tr> <tr> <tr> <td > 体质指数: </td> <td> <input type="text" name="PWNUM" id="PWNUM" class="text_2"onBlur="checkPrecent('PWNUM');" value="<%=map.get("PWNUM") == null ? "" : map .get("PWNUM").toString()%>"> </td> <td > 足背动脉搏动: </td> <td> <input type="radio" name="FOOTWAVE" id="FOOTWAVE" value="1" <% if ("1".equals(map.get("FOOTWAVE"))){%> checked="checked" <%}%>> 未触及 <input type="radio" name="FOOTWAVE" id="FOOTWAVE" <% if ("2".equals(map.get("FOOTWAVE"))){%> checked="checked" <%}%>> 触及</td> </tr> <tr> <td > 医生签名: </td> <td colspan="4"> <input type="text" name="DECTORNAME" id="DECTORNAME" class="text_2" value="<%=map.get("DECTORNAME")==null?"":map.get("DECTORNAME").toString()%>"> </td> </tr> <tr> <td > 下次随访日期: </td> <td colspan="4"> <input type="text" name="NEXT_V_TIME_YEAR" size="5" onBlur="checkYear('NEXT_V_TIME_YEAR');" value="<%=map.get("NEXT_V_TIME")==null?"":map.get("NEXT_V_TIME").toString().substring(0, 10).split("-")[0]%>"> 年 <input type="text" name="NEXT_V_TIME_MONTH" size="3" onBlur="checkMonth('NEXT_V_TIME_MONTH');" value="<%=map.get("NEXT_V_TIME")==null? "":map.get("NEXT_V_TIME").toString().substring(0, 10).split("-")[1]%>"> 月 <input type="text" name="NEXT_V_TIME_DAY" size="3" onBlur="checkDay('NEXT_V_TIME_DAY');" value="<%=map.get("NEXT_V_TIME")==null? "":map.get("NEXT_V_TIME").toString().substring(0, 10).split("-")[2]%>"> 日 </td> </tr> <tr> <td colspan="5" height="5"></td> </tr> <tr> <td align="center" class="coolbutton" style="cursor: hand" colspan="5"> <img src="<%=basePath%>images/queding.gif" width="51" height="20" onClick="find_dq();"> <img src="<%=basePath%>images/quxiao.gif" width="51" height="20" onClick="window.close();"> <img src="<%=basePath%>images/dayin.gif" width="51" height="20" onClick="print_yl()"> </td> </tr> </table> <%} %> </form> </body> </html>
?
?
?总结:
我们看到,我是在页面的上方,通过java代码,来条用action中的方法,获取一个iterator,然后将其转换为map类型,
然后通过map.get(列名)进行获取赋值的,但要注意,进行是否为空的逻辑判断方可以及三目运算符的使用;
1 楼
yyqhs
2010-05-29
在jsp页面中直接编写java代码会使页面的可读性和可维护性变得非常差,楼主的代码就是一个很好的反面教材。本来jsp页面中就不应该掺杂业务逻辑,jsp页面应该只有数据显示的功能,再说在jsp页面中直接编写java代码是不是更加方便还要打上一个大大的问号,本人更倾向于使用JSTL。
2 楼
allenny
2011-03-29
刚开始编程时曾经用这种方式写过一个JSP,一千多行,嵌套十几层判断,结果最后无法维护。新手还是多吸取前人的经验。