打印

常用JSP代码,与大家共享

常用JSP代码,与大家共享

<%@ page contentType="text/html; charset=gbk" language="java" import="java.sql.*,java.util.*" errorPage="" %>       

字符串匹配比较:(session.getValue("MM_UserAuthorization")).toString().equals("admin")
获取客户端IP:   <%= request.getRemoteAddr() %>
日期时间函数:        <%=new java.util.Date().toLocaleString() %>
日期时间的输出:
日期时间: <%=(rs.getString("addsj")).substring(0,19)%>
日期:     <%=(rs.getString("addsj")).substring(0,10)%>
时间:     <%=(rs.getString("addsj")).substring(10,19)%>
<%=addsj.substring(0,19)%>
<% String addsj;out.print(((addsj = rs.getString("addsj"))==null)?"":addsj.substring(0,19)); %>
<%=new Date()%>

输出记录集索引:
        在重复区域的循环while前加int id=rs_first; ,在rs_hasData=rs.next();前加id=id+1;
然后在循环体的表格中输出<%= id %>

一、JSP动态文本类型:
<%=rs.getObject("ListPrice")%>
<%=rs.getBoolean("commend")%>   逻辑型
<%=rs.getDate("PubDate")%>      日期型
<%=rs.getTime("sj")%>                时间型
<%=rs.getTimestamp("datetime")%>日期时间型
<%=rs.getString("Product")%>    文本型
<%=rs.getInt("ID")%>            整型
<%=rs.getLong("Price")%>         长整型
<%=rs.getFloat("Price")%>       单精度型
<%=rs.getDouble("Price")%>         双精度型
<%=rs.getBinaryStream("content")%> 备注型


<%=request.getParameter("id")%>  表单变量/URL参数
<%=session.getValue("id")%>      阶段变量

二、控制动态文本的显示长度:
<% if(title.length()>15) { %>
        <%=title.substring(0,14)%>..
<% } else { %>
        <%=title%><% } %>

<%=rs.getString("Description").substring(0,88)%>...

三、将动态文本插入多次:
                此类情况可以解决JSP网页中的以下问题:
        1.网页中有两个“转到详细页面”服务行为传递同一个URL参数;
        2.设置动态文本的动态超链接;
        3.动态文本与“转到详细页面”服务器行为传递的URL参数相同;
        4.动态下拉菜单及初始选取值;
        5.动态单选按钮;

        动态复选框;将以下代码加入复选框的input标记内
<%if (rs.getBoolean("字段")) out.print("checked=\"checked\"");%>

    (一)在代码视图中定义记录集,并立即加入变量定义(此法仅适用于只生成一条记录的记录集):
<%
……
……
int 记录集名称_numRows = 0;
String 字段=记录集名称.getString("字段");
int 字段=记录集.getInt("字段");
String url_data;String url=((url_data = rs.getString("url"))==null)?"":url_data;
%>
     于是网页中可以重复出现此动态文本:
<%=字段%>        <%=字段%>        <%=字段%>

    (二)在while循环中(重复区域或动态菜单)定义变量:
String url_data;String url=((url_data = rs.getString("url"))==null)?"":url_data;

<% String 字段=记录集.getString("字段");%>
<% int 字段=记录集.getInt("字段");%>

     于是网页中可以多次出现此动态文本:
<%=字段%>        <%=字段%>        <%=字段%>

在JSP网页中插入动态下拉菜单的方法:
        1.定义通过URL参数筛选的记录集,并立即定义对应于类别字段的变量
                  String 变量名称=记录集名称.getString("类别字段");
        2.定义类别记录集
        3.插入动态下拉菜单,并设置初始选取值
        4.在while循环中定义类别记录集中编号和名称的“字符型”变量,分别取代动态下拉菜单option的选定值和标签值
        5.用以下代码取代option标签内判定是否选中的对应代码:
<%=(类别字段变量.toString().equals(所属类别字段变量.toString())?"selected=\"selected\"":"")%>

四、逻辑型控制显示内容:
<% if (记录集.getBoolean("字段")) out.print("是"); else out.print("否"); %>
<% if (记录集.getBoolean("字段"))%>是<% else %>否

五、条件域控制信息显示
<%if (Recordset1.getObject("ListPrice"))=="" %> 价格:<%=Recordset1.getObject("Price")%>元
<%else%>原价:<%=Recordset1.getObject("Price")%>元
        现价:<%=Recordset1.getObject("ListPrice")%>元

<% String price=subProducts.getString("Price");
String listPrice=subProducts.getString("ListPrice");
if (listPrice==null)
{
%>
价格:<%=price%>元
        <%}else{%>
原价:<%=price%>元  现价:<%=listPrice%>元  节省了<%=Float.valueOf(price).floatValue()-Float.valueOf(listPrice).floatValue()%>元
        <% } %>

六、做减法(货币型或数字型字段):
原价:<span class="text-line"><%int cc=Recordset1.getInt("Price");%><%=cc%>元</span>  现价:<% int bb=Recordset1.getInt("ListPrice");%><%=bb%>元  
节省了<%=cc-bb%>元

七、定义阶段变量:

将以下代码加在“记录集(查询)”的代码内容末,可以创建阶段变量ProductID:
<%
……
……
int 记录集名称_numRows = 0;

String id=Recordset1.getString("ProductID");
        session.putValue("ProductID", id);
%>

        将URL参数或表单变量定义为阶段变量:
<%
        String id=request.getParameter("ProductID");
        session.putValue("ProductID", id);
%>
        将阶段变量置空:  session.setAttribute("OrderID",null);
八、如果阶段变量为空,则网页重定向:
<% if (session.getValue("MM_Username")==null)
   { response.sendRedirect(response.encodeRedirectURL("../admin/error.jsp"));}
%>

<% else {%>
网页内容
<% } %>

九、记录集分行显示:
1.将以下代码放在table标签内
<% while ((rs_hasData)&&(Repeat1__numRows-- != 0))
                  {
                          int Repeat1__numRowRecs=列数;
  %>
  <tr>
  <% while ((Repeat1__numRowRecs != 0)&&(rs_hasData)&&(Repeat1__numRows-- != 0))
                  {
  %>
          <td>单元格内的动态文本等</td>
   
    <%
                Repeat1__numRowRecs=Repeat1__numRowRecs-1;
                  Repeat1__index=Repeat1__index+1;
                  Repeat1__numRows=Repeat1__numRows-1;
                           rs_hasData = rs.next();
                }
        %>
                                        </tr>
<% } %>
2.将以下代码放在table标签内
  <tr>
  <% while ((rs_hasData)&&(Repeat1__numRows-- != 0)) { %>
          <td>单元格内的动态文本等</td>
   
    <%
                         Repeat1__index++;
                         Repeat1__numRows=Repeat1__numRows-1;
                         rs_hasData = rs.next();
        %>
                <% if (Repeat1__index%列数==0) { %>
  </tr><tr>
                <% } %>
<% } %>
十、嵌套显示重复区域:
首先定义“大类记录集rs”,并设整个表格为大类的重复区域。
<% while ((rs_hasData)&&(Repeat1__numRows-- != 0)) { %>
  
<% int CategoryID=rs.getInt("CategoryID"); %>
    <li><a href="category.jsp?CategoryID=<%= CategoryID %>"><%=(((rs_data = rs.getObject("CategoryName"))==null || rs.wasNull())?"":rs_data)%></a>
          
          <ul>               
<%
        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
        Connection conn=DriverManager.getConnection("jdbc:odbc:shop","","");
        PreparedStatement pstmt=conn.prepareStatement("select * from SubCategories where CategoryID=?");
        pstmt.setInt(1,CategoryID);
        ResultSet re=pstmt.executeQuery();
%>      

          <% while (re.next()) { %>
        <li><A HREF="subcategory.jsp?SubCategoryID=<%= re.getInt("SubCategoryID") %>"><%= re.getString("SubCategoryName") %></A></li>
        <% } %>       
<%
        re.close();
        pstmt.close();
        conn.close();
%>
      </ul>
    </li>
    <%
  Repeat1__index++;
  rs_hasData = rs.next();
}
%>

[ 本帖最后由 lujunxiang 于 2008-1-5 18:06 编辑 ]

TOP

不错的介绍,很详细,辛苦了!

TOP

辛苦了!谢谢你!

TOP

受不了了,注意禁用 Smilies。
我编辑了一下。
自在的风~

TOP

还是ASP.NET高效啊。
自在的风~

TOP

回复 #5 lujunxiang 的帖子

编出来虾米咧
手伤了,机器也让我格了
看不见了

TOP

引用:
原帖由 grjboy30 于 2008-1-5 21:10 发表
编出来虾米咧
手伤了,机器也让我格了
看不见了
LZ发的都是smiles,我就编辑了一下,不然看不下去了。
自在的风~

TOP

哎。。 .NET就是比JAVA方便。
不过我还是喜欢JAVA

TOP

回复 #8 ninty 的帖子

那你用 。NET做个上百万的项目看看 看客户还给你那么多钱不

TOP

回复 #9 grjboy30 的帖子

忽悠啊
说的神乎其神。天花乱坠。

TOP


感谢一直以来您对我们的支持!
当前时区 GMT+8, 现在时间是 2008-10-11 12:35 京ICP证060528 号

Designed By 17DST