`calculator.jsp`
`001 <%@ page contentType="text/html; charset=Shift_JIS" %> 002 <%@ page import="javax.naming.*, 003 java.text.*, 004 java.util.*, 005 trail.entity.beans.*, 006 trail.entity.basic.*"%> 007 008 <%! 009 private Calculator cal = null; 010 private NumberFormat nf = null; 011 012 public void jspInit () { 013 try { 014 InitialContext ctx = new InitialContext(); 015 cal = (Calculator) ctx.lookup( 016 "EJB3Trail/EntityCalculator/local"); 017 } catch (Exception e) { 018 e.printStackTrace (); 019 } 020 021 nf = NumberFormat.getInstance(); 022 nf.setMaximumFractionDigits(2); 023 } 024 %> 025 026 <% 027 String result = "Not Valid"; 028 if ("Calculate".equals(request.getParameter("action"))) { 029 double res = -1; 030 res = cal.calculate (Integer.parseInt(request.getParameter("fund")), 031 Integer.parseInt(request.getParameter("investor")), 032 Double.parseDouble(request.getParameter("saving"))); 033 if (res != -1) { 034 result = nf.format(res); 035 } 036 } 037 %> 038 039 <html><body> 040 041 <p>投資計算プログラム<br/> 042 <form action="calculator.jsp" method="POST"> 043 投資会社: 044 <select name="fund"> 045 <% 046 Collection funds = cal.getFunds (); 047 for (Iterator iter = funds.iterator(); iter.hasNext();) { 048 Fund fund = (Fund) iter.next(); 049 %> 050 <option value="<%=fund.getId()%>"><%=fund.getName()%></option> 051 <% 052 } 053 %> 054 </select> 055 と個人投資家: 056 <select name="investor"> 057 を選択する 058 <% 059 Collection investors = cal.getInvestors (); 060 for (Iterator iter = investors.iterator(); iter.hasNext();) { 061 Investor investor = (Investor) iter.next(); 062 %> 063 <option value="<%=investor.getId()%>"><%=investor.getName()%></option> 064 <% 065 } 066 %> 067 </select><br/> 068 月掛金額 = <input type="text" name="saving" value="100"> 069 <input type="hidden" name="action" value="Calculate"> 070 <input type="submit" value="計算"> 071 <INPUT type="button" value="閉じる" onClick="window.close()"> 072 </form><br/> 073 合計投資額は<%=result%>です<br/> 074 <br/> 075 データベース内の過去の計算記録<br/> 076 <table> 077 <tr> 078 <td>タイムスタンプ</td> 079 <td>投資会社</td> 080 <td>個人投資家</td> 081 <td>月掛金額</td> 082 <td><b>合計投資額</b></td> 083 </tr> 084 085 <% 086 Collection records = cal.getRecords (); 087 for (Iterator iter = records.iterator(); iter.hasNext();) { 088 TimedRecord record = (TimedRecord) iter.next(); 089 %> 090 091 <tr> 092 <td><%=record.getTs()%></td> 093 <td><%=record.getFund().getName()%></td> 094 <td><%=record.getInvestor().getName()%></td> 095 <td><%=nf.format(record.getSaving())%></td> 096 <td><%=nf.format(record.getResult())%></td> 097 </tr> 098 099 <% 100 } 101 %> 102 </table> 103 104 </p> 105 106 </body></html>`