JAVA涂鴉
          關于JAVA的點點滴滴
          posts - 50,  comments - 689,  trackbacks - 0
          接上一篇:struts+spring+hibernate的web應用<四> Web層代碼編寫(1)

          接著就是寫資源文件了。

          com.game.resources包中添加ApplicationResourcesProducts.properties文件。如果你的eclipse中有Properties Editor這個插件,就可以用Properties Editor打開資源文件進行編寫,省去了用命令行轉換格式的麻煩。配置內容如下:

          errors.required={0}不能為空.
          errors.minlength={0}不能小于 {1} 個字符.
          errors.maxlength={0}不能大于 {1} 個字符.
          errors.invalid={0}輸入格式不對.
          errors.byte={0}必須為字節.
          errors.short={0}必須為短整型.
          errors.integer={0}必須為整型.
          errors.long={0}必須為長整型.
          errors.float={0}必須為浮點型.
          errors.double={0}必須為雙精度型.
          errors.date={0}不是一個正確的日期或格式不對.
          errors.range={0} is not in the range {1} through {2}.
          errors.creditcard={0} is not a valid credit card number.
          errors.email={0}不是一個有效的email地址.

          errors.gameNameCn=游戲中文名稱
          errors.gameNameEn=游戲英文名稱
          errors.gameCapacity=碟數
          errors.gamePrice=價格


           

          需要注意的是

           ssh3.jpg

          這一節是不能省去的。

           

          接下來就是寫頁面文件了。在products文件夾中添加如下頁面。

           

          index.jsp頁面代碼:

          <%@ page contentType="text/html;charset=GBK" language="java" %>

          <html>
          <head>
          <meta http-equiv="Content-Type" content="text/html; charset=GBK"/>
          <title>游戲軟件管理系統</title>
          </head>
          <body>

          <href="/game/getProducts.do?method=doGetProducts&&flag=1">進入游戲軟件管理單元</a>
          </body>
          </html>

           

           

          products.jsp頁面代碼:

          <%@page pageEncoding="GBK" contentType="text/html; charset=GBK" import="com.game.commons.Pager;"%>
          <%@ taglib uri="struts-html" prefix="html" %>
          <%@ taglib uri="struts-logic" prefix="logic" %>
          <%@ taglib uri="struts-bean" prefix="bean" %>
          <%
          String flag=(String)request.getAttribute("flag");
          String totalRows=(String)request.getAttribute("totalRows");
          String fieldname="";
          String value="";
          if(flag.equals("2")){
              fieldname
          =(String)request.getAttribute("fieldname");
              value
          =(String)request.getAttribute("value");
          }
          %>
          <html>
          <head>
          <meta http-equiv="Content-Type" content="text/html; charset=GBK"/>
          <title></title>
          <script language = "JavaScript">
          function btnQuery() {
              
          if(myfm.value.value=="")
              
          {    
                  alert(
          "請輸入查詢關鍵字!");
              }
          else{
                  window.location.href
          ="/game/queryProducts.do?method=doQueryProduct&&flag=2&&fieldname="+myfm.fieldname.value+"&&value="+myfm.value.value;
               }

           }

           
          </script>
          </head>
          <body>
          <form  name="myfm" method="post">
          <table border="1">
          <tr>
          <td>
          <href="/game/getProducts.do?method=doGetProducts&&flag=1">察看所有記錄</a>
          &nbsp;&nbsp;&nbsp;
          </td>
          <td>
          <href="/game/addProductPage.do?method=doAddProductPage&&flag=<%= flag%>&&fieldname=<%=fieldname%>&&value=<%= value%>">添加</a>
          &nbsp;&nbsp;&nbsp;
          </td>
          <td>
              
          <select name="fieldname" >
                  
          <option value="gameNameCn">中文名稱</option>
                  
          <option value="gameNameEn">英文名稱</option>
                  
          <option value="gameCapacity">碟數</option>
                  
          <option value="gameVersion">版本</option>
                  
          <option value="gameMedia">介質</option>
                  
          <option value="gameCopyright">版權</option>
              
          </select>
              
          <input value="" name="value"  />

          <href="#" onclick="btnQuery()">查詢</a>
          </td>
          </tr>
          </table>
          <br>
          <br>
            
          <table border="1">
              
          <tr>
                  
          <td>游戲中文名稱</td>
                  
          <td>游戲英文名稱</td>
                  
          <td>軟件版本</td>
                  
          <td>軟件介質</td>
                  
          <td>碟數</td>
                  
          <td>版權</td>
                  
          <td>價格(元)</td>
                  
          <td>攻略</td>
              
          </tr>
              
          <logic:iterate id="pd" name="productsList">
              
          <tr>
                  
          <td><href="/game/getProduct.do?method=doGetProduct&&flag=<%=flag%>&&gameId=<bean:write name="pd" property="gameId"/>&&flag=<%= flag%>&&fieldname=<%=fieldname%>&&value=<%= value%>"><bean:write name="pd" property="gameNameCn"/></a></td>
                  
          <td><bean:write name="pd" property="gameNameEn"/></td>
                  
          <td>
                      
          <logic:equal name="pd" property="gameVersion" value="1">
                          中文版
                      
          </logic:equal>
                      
          <logic:equal name="pd" property="gameVersion" value="2">
                          英文版
                      
          </logic:equal>
                  
          </td>
                  
          <td>
                      
          <logic:equal name="pd" property="gameMedia" value="1">
                          CD
                      
          </logic:equal>
                      
          <logic:equal name="pd" property="gameMedia" value="2">
                          DVD5
                      
          </logic:equal>
                      
          <logic:equal name="pd" property="gameMedia" value="3">
                          DVD9
                      
          </logic:equal>
                  
          </td>
                  
          <td><bean:write name="pd" property="gameCapacity"/></td>
                  
          <td>
                      
          <logic:equal name="pd" property="gameCopyright" value="1">
                          正版
                      
          </logic:equal>
                      
          <logic:equal name="pd" property="gameCopyright" value="2">
                          翻版
                      
          </logic:equal>
                  
          </td>
                  
          <td><bean:write name="pd" property="gamePrice"/></td>
                  
          <td><bean:write name="pd" property="gameContent"/></td>
              
          </tr>
              
          </logic:iterate>
              
          <tr>
                  
          <%if(flag.equals("1")){%>
                      
          <td colspan="8" align="right" class="head">
                          共有
          <%=totalRows%>條記錄&nbsp;&nbsp;&nbsp;&nbsp;
                          第
          <bean:write name="PAGER" property="currentPage"/>&nbsp;
                          共
          <bean:write name="PAGER" property="totalPages"/>&nbsp;
                          
          <html:link action="/getProducts.do?method=doGetProducts&&flag=1&&pagerMethod=first" paramName="PAGER" paramProperty="currentPage" paramId="currentPage">首頁</html:link>
                          
          <html:link action="/getProducts.do?method=doGetProducts&&flag=1&&pagerMethod=previous" paramName="PAGER" paramProperty="currentPage" paramId="currentPage">上一頁</html:link>
                          
          <html:link action="/getProducts.do?method=doGetProducts&&flag=1&&pagerMethod=next" paramName="PAGER" paramProperty="currentPage" paramId="currentPage">下一頁</html:link>
                          
          <html:link action="/getProducts.do?method=doGetProducts&&flag=1&&pagerMethod=last" paramName="PAGER" paramProperty="currentPage" paramId="currentPage">尾頁</html:link>
                      
          </td>    
                  
          <%}else if(flag.equals("2")){%>
                  
          <% Pager pager=(Pager)request.getAttribute("PAGER");%>
                      
          <td colspan="8" align="right" class="head">
                          共有
          <%=totalRows%>條記錄&nbsp;&nbsp;&nbsp;&nbsp;
                          第
          <bean:write name="PAGER" property="currentPage"/>&nbsp;
                          共
          <bean:write name="PAGER" property="totalPages"/>&nbsp;
                          
          <href="/game/queryProducts.do?method=doQueryProduct&&flag=2&&fieldname=<%=fieldname%>&&value=<%= value%>&&pagerMethod=first&&currentPage=<%=pager.getCurrentPage()%>" >首頁</a>
                          
          <href="/game/queryProducts.do?method=doQueryProduct&&flag=2&&fieldname=<%=fieldname%>&&value=<%= value%>&&pagerMethod=previous&&currentPage=<%=pager.getCurrentPage()%>" >上一頁</a>
                          
          <href="/game/queryProducts.do?method=doQueryProduct&&flag=2&&fieldname=<%=fieldname%>&&value=<%= value%>&&pagerMethod=next&&currentPage=<%=pager.getCurrentPage()%>" >下一頁</a>
                          
          <href="/game/queryProducts.do?method=doQueryProduct&&flag=2&&fieldname=<%=fieldname%>&&value=<%= value%>&&pagerMethod=last&&currentPage=<%=pager.getCurrentPage()%>" >尾頁</a>
                          
                      
          </td>    
                  
          <%}%>
              
          </tr>
          </table>
          </form>
          </body>
          </html>



          addproduct.jsp頁面代碼:

          <%@page pageEncoding="GBK" contentType="text/html; charset=GBK" %>
          <%@ taglib uri="struts-html" prefix="html" %>
          <%@ taglib uri="struts-logic" prefix="logic" %>
          <%@ taglib uri="struts-bean" prefix="bean" %>
          <%
          String flag=(String)request.getAttribute("flag");
          String fieldname="";
          String value="";
          if(flag.equals("2")){
              fieldname
          =(String)request.getAttribute("fieldname");
              value
          =(String)request.getAttribute("value");
          }
          String maxid=(String)request.getAttribute("maxid");
          %>
          <html>
          <head>
          <meta http-equiv="Content-Type" content="text/html; charset=GBK"/>
          <title></title>
          <html:base/>
          <html:javascript formName="productsForm" method="validate"/>
          <script Language="JavaScript">
                 
          function btn_AddFolder() {
                     
          if(confirm("確定要保存嗎?")){
                      
          if(document.productsForm.onsubmit()){        
                          document.forms[
          0].submit();
                      }

                  }
            
              }

          </script>
          </head>
          <body>

          <href="/game/returnProduct.do?method=doReturnProduct&&flag=<%= flag%>&&fieldname=<%=fieldname%>&&value=<%= value%>">返回</a>
          <html:form action="/addProduct.do" onsubmit="return validate(this)">
          <table border="1">
              
          <tr>
                  
          <td>游戲中文名稱</td>
                  
          <td>游戲英文名稱</td>
                  
          <td>軟件版本</td>
                  
          <td>軟件介質</td>
                  
          <td>碟數</td>
                  
          <td>版權</td>
                  
          <td>價格(元)</td>
                  
          <td>攻略</td>
              
          </tr>
              
          <tr>
                  
          <td><html:text property="gameNameCn"/></td>
                  
          <td><html:text property="gameNameEn"/></td>
                  
          <td>
                      
          <html:select property="gameVersion" >
                            
          <html:option value= "2">英文版&nbsp;&nbsp;&nbsp;&nbsp;</html:option>
                            
          <html:option value= "1">中文版</html:option>
                        
          </html:select>   
                  
          </td>
                  
          <td>
                      
          <html:select property="gameMedia" >
                            
          <html:option value= "1">CD&nbsp;&nbsp;&nbsp;&nbsp;</html:option>
                            
          <html:option value= "2">DVD5</html:option>
                            
          <html:option value= "3">DVD9</html:option>
                        
          </html:select>   
                  
          </td>
                  
          <td><html:text property="gameCapacity" size="5"/></td>
                  
          <td>
                      
          <html:select property="gameCopyright" >
                            
          <html:option value= "2">翻版&nbsp;&nbsp;&nbsp;&nbsp;</html:option>
                            
          <html:option value= "1">正版</html:option>
                        
          </html:select>  
                  
          </td>
                  
          <td><html:text property="gamePrice"/></td>
                  
          <td><html:text property="gameContent"/></td>
              
          </tr>
              
          </table>
          <html:hidden property="gameId" value="<%= maxid%>"/>
          <html:hidden property="method" value="doAddProduct"/>
          <html:hidden property="flag" value="<%= flag%>"/>
          <html:hidden property="fieldname" value="<%= fieldname%>"/>
          <html:hidden property="value" value="<%=value%>"/>
          <input type="button" value="保存" onclick="btn_AddFolder()"/>

          </html:form>
          </body>
          </html>


          product.jsp頁面代碼:

          <%@page pageEncoding="GBK" contentType="text/html; charset=GBK" %>
          <%@ taglib uri="struts-html" prefix="html" %>
          <%@ taglib uri="struts-logic" prefix="logic" %>
          <%@ taglib uri="struts-bean" prefix="bean" %>
          <%
          String flag=(String)request.getAttribute("flag");
          String fieldname="";
          String value="";
          if(flag.equals("2")){
              fieldname
          =(String)request.getAttribute("fieldname");
              value
          =(String)request.getAttribute("value");
          }
          %>
          <html>
          <head>
          <meta http-equiv="Content-Type" content="text/html; charset=GBK"/>
          <title></title>
          <html:javascript formName="productsForm" method="validate"/>
          </head>
          <body>
          <href="/game/addProductPage.do?method=doAddProductPage&&flag=<%= flag%>&&fieldname=<%=fieldname%>&&value=<%= value%>">添加</a> &nbsp;&nbsp;&nbsp;
          <href="/game/returnProduct.do?method=doReturnProduct&&flag=<%= flag%>&&fieldname=<%=fieldname%>&&value=<%= value%>">返回</a>&nbsp;&nbsp;&nbsp;
          <href="/game/deleteProduct.do?method=doDeleteProduct&&flag=<%= flag%>&&gameId=<bean:write name="pd" property="gameId"/>&&fieldname=<%=fieldname%>&&value=<%= value%>">刪除</a>
          <br>
          <br>
          <html:form action="/updateProduct.do" onsubmit="return validate(this)">
          <table border="1">
              
          <tr>
                  
          <td>游戲中文名稱</td>
                  
          <td>游戲英文名稱</td>
                  
          <td>軟件版本</td>
                  
          <td>軟件介質</td>
                  
          <td>碟數</td>
                  
          <td>版權</td>
                  
          <td>價格(元)</td>
                  
          <td>攻略</td>
              
          </tr>
              
          <tr>
                  
          <td><html:text name="pd" property="gameNameCn"/></td>
                  
          <td><html:text name="pd" property="gameNameEn"/></td>
                  
          <td>
                      
          <html:select name="pd" property="gameVersion" >
                            
          <html:option value= "1">中文版&nbsp;&nbsp;&nbsp;&nbsp;</html:option>
                            
          <html:option value= "2">英文版</html:option>
                        
          </html:select> 
                  
          </td>
                  
          <td>
                      
          <html:select name="pd" property="gameMedia" >
                            
          <html:option value= "1">CD&nbsp;&nbsp;&nbsp;&nbsp;</html:option>
                            
          <html:option value= "2">DVD5</html:option>
                            
          <html:option value= "3">DVD9</html:option>
                        
          </html:select>  
                  
          </td>
                  
          <td><html:text name="pd" property="gameCapacity" size="5"/></td>
                  
          <td>
                      
          <html:select name="pd" property="gameCopyright" >
                            
          <html:option value= "1">正版&nbsp;&nbsp;&nbsp;&nbsp;</html:option>
                            
          <html:option value= "2">翻版</html:option>
                        
          </html:select>  
                  
          </td>
                  
          <td><html:text name="pd" property="gamePrice" size="10"/></td>
                  
          <td><html:text name="pd" property="gameContent"/></td>
              
          </tr>
              
          </table>
          <html:hidden property="method" value="doUpdateProduct"/>
          <html:hidden name="pd" property="gameId" />
          <html:hidden property="flag" value="<%= flag%>"/>
          <html:hidden property="fieldname" value="<%= fieldname%>"/>
          <html:hidden property="value" value="<%=value%>"/>
          <html:submit property="submit" value="保存"></html:submit>
          </html:form>
          </body>
          </html>


          product_success.jsp
          頁面代碼:

          <%@page pageEncoding="GBK" contentType="text/html; charset=GBK" %>
          <%
          String flag=(String)request.getAttribute("flag");
          String fieldname="";
          String value="";
          if(flag.equals("2")){
              fieldname
          =(String)request.getAttribute("fieldname");
              value
          =(String)request.getAttribute("value");
          }
          %>
          <html>
          <head>
          <meta http-equiv="Content-Type" content="text/html; charset=GBK"/>
          <title></title>
          </head>
          <body>
          操作成功!

          <href="/game/returnProduct.do?method=doReturnProduct&&flag=<%= flag%>&&fieldname=<%=fieldname%>&&value=<%= value%>">返回</a>
          <href="/game/addProductPage.do?method=doAddProductPage&&flag=<%= flag%>&&fieldname=<%=fieldname%>&&value=<%= value%>">繼續添加</a>
          </body>
          </html>

           

          product_failure.jsp頁面代碼:

           

          <%@page pageEncoding="GBK" contentType="text/html; charset=GBK" %>
          <%
          String flag=(String)request.getAttribute("flag");
          String fieldname="";
          String value="";
          if(flag.equals("2")){
              fieldname
          =(String)request.getAttribute("fieldname");
              value
          =(String)request.getAttribute("value");
          }
          %>
          <html>
          <head>
          <meta http-equiv="Content-Type" content="text/html; charset=GBK"/>
          <title></title>
          </head>
          <body>
          操作失敗!
          <href="/game/returnProduct.do?method=doReturnProduct&&flag=<%= flag%>&&fieldname=<%=fieldname%>&&value=<%= value%>">返回</a>
          </body>
          </html>

           

          最后在tld文件夾中添加下列tld文件。

           

           

          至此,整個項目基本編寫完了,運行tomcat,看看我們的項目的效果吧!

          在地址欄輸入http://localhost:8088/game/products/index.jsp

           

          然后點擊“進入游戲軟件管理單元”鏈接,主界面出現了。


          posted on 2007-03-14 10:25 千山鳥飛絕 閱讀(7509) 評論(18)  編輯  收藏 所屬分類: Web開發

          FeedBack:
          # re: struts+spring+hibernate的web應用 Web層代碼編寫(2)[未登錄]
          2007-03-14 13:24 | 阿蜜果
          :)
          可以試著將分頁部分寫成自定義標簽的形式。  回復  更多評論
            
          # re: struts+spring+hibernate的web應用 Web層代碼編寫(2)
          2007-03-24 09:07 | 千山鳥飛絕
          @阿蜜果
          等有時間再來修改。  回復  更多評論
            
          # re: struts+spring+hibernate的web應用 Web層代碼編寫(2)[未登錄]
          2007-04-22 15:41 | leo
          頁面最好不要有代碼,后臺處理下放到form里直接在頁面顯示不是很好嗎.  回復  更多評論
            
          # re: struts+spring+hibernate的web應用 Web層代碼編寫(2)
          2007-04-26 14:18 | 軍軍
          收益非淺
          可以加10000個頂。
          向你學習。  回復  更多評論
            
          # re: struts+spring+hibernate的web應用 Web層代碼編寫(2)
          2007-04-30 14:06 | furong
          千山鳥飛絕
          非常感謝你寫的這些系列文章

          但是感覺最后的web應用層代碼很多,對于我這種初學者來說看起來有點困難
          不知道你能不能把web層用struts2寫出來,總感覺struts2可能沒有這么煩瑣

          感激不盡!  回復  更多評論
            
          # re: struts+spring+hibernate的web應用 Web層代碼編寫(2)
          2007-04-30 16:09 | 千山鳥飛絕
          @furong
          你可以看看這個示例中的struts2.0的代碼:
          Struts2.0+spring2.0+hibernate3.1 ACEGI應用(權限判斷)
          http://www.aygfsteel.com/rickhunter/archive/2007/04/24/113103.html

          最近比較忙,一直沒時間寫文章,只是將一些示例放在網上了。有空的時候會寫幾篇關于struts2.0和hibernate annotation以及spring2.0的文章。  回復  更多評論
            
          # re: struts+spring+hibernate的web應用 Web層代碼編寫(2)
          2007-05-09 09:50 | 東東
          大體意思很清晰 比較有價值 愛  回復  更多評論
            
          # re: struts+spring+hibernate的web應用 Web層代碼編寫(2)
          2007-06-06 09:49 | neusoft029
          非常漂亮,寫的很好  回復  更多評論
            
          # re: struts+spring+hibernate的web應用 Web層代碼編寫(2)
          2007-06-14 11:53 | sgwood
          你寫得不錯,支持一下,最近研究Struts2.0
          有興趣的人一起聯系:sgwood@qq.com  回復  更多評論
            
          # re: struts+spring+hibernate的web應用 Web層代碼編寫(2)
          2007-06-27 15:48 | 盧濤
          是的Web層的代碼多了點.
          建議JSP頁面中使用JSTL,頁面更加簡潔  回復  更多評論
            
          # re: struts+spring+hibernate的web應用 Web層代碼編寫(2)
          2007-08-28 11:16 | kewon
          org.apache.jasper.JasperException: Unable to compile class for JSP:

          An error occurred at line: 22 in the generated java file
          The method getJspApplicationContext(ServletContext) is undefined for the type JspFactory

          Stacktrace:
          org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:92)
          org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
          org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:423)
          org.apache.jasper.compiler.Compiler.compile(Compiler.java:308)
          org.apache.jasper.compiler.Compiler.compile(Compiler.java:286)
          org.apache.jasper.compiler.Compiler.compile(Compiler.java:273)
          org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:566)
          org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
          org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
          org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
          javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
          com.game.commons.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:36)

          這是怎么原因?  回復  更多評論
            
          # re: struts+spring+hibernate的web應用 Web層代碼編寫(2)
          2007-08-28 11:17 | kewon
          為什么jsp的頁面不能編譯?  回復  更多評論
            
          # re: struts+spring+hibernate的web應用 Web層代碼編寫(2)[未登錄]
          2007-11-09 13:25 | sky
          非常感謝  回復  更多評論
            
          # re: struts+spring+hibernate的web應用 Web層代碼編寫(2)
          2007-11-29 22:19 | 易京勇
          基本思路還是很清晰的,學到東西拉!  回復  更多評論
            
          # re: struts+spring+hibernate的web應用 Web層代碼編寫(2)
          2008-04-25 07:44 | 問問
          樓主,你的代碼真的不怎么樣(真的沒啥先進的地方),也許用不了多久你就會贊同我的看法。
          實話實說,請見諒。  回復  更多評論
            
          # re: struts+spring+hibernate的web應用 Web層代碼編寫(2)[未登錄]
          2008-04-29 11:18 | aa
          寫得不錯 頂起來   回復  更多評論
            
          # re: struts+spring+hibernate的web應用 Web層代碼編寫(2)
          2008-12-11 09:50 | Yu
          雖然可能寫的不完美,但是對于初學者來說,還是一個很好的入門例子,畢竟網上寫得那些詳細的教程很少,謝謝了:)  回復  更多評論
            
          # re: struts+spring+hibernate的web應用 Web層代碼編寫(2)
          2011-09-02 11:20 | 右手懸空
          標記下,回去研究  回復  更多評論
            
          正在閱讀:



          <2007年3月>
          25262728123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          常用鏈接

          留言簿(35)

          隨筆檔案

          文章分類

          文章檔案

          好友的blog

          我的其他blog

          老婆的Blog

          搜索

          •  

          積分與排名

          • 積分 - 775408
          • 排名 - 56

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 凉山| 平定县| 城步| 黄石市| 隆化县| 司法| 山阳县| 当涂县| 唐海县| 平潭县| 易门县| 丹寨县| 扶余县| 自贡市| 黔西县| 松桃| 贡觉县| 平山县| 三门峡市| 江达县| 儋州市| 文登市| 松江区| 石家庄市| 缙云县| 金昌市| 砚山县| 通辽市| 宜宾县| 哈巴河县| 新疆| 大厂| 临清市| 黄陵县| 扬中市| 楚雄市| 本溪| 隆子县| 苗栗县| 济南市| 丰都县|