0
servletについて(カレンダー)
下記のプログラムで、javaで使用したint型の
year,monthをHTMLのvalueで使用したい場合どうしたら
いいのでしょうか?
場所は下の部分です
pw.println("<input type=\"hidden\"name=\"httpyear
\"value=year>");
pw.println("<input type=\"hidden\"name=
\"httpmonth\"value=month>");
NEXTボタンが押された処理はまだ作っていませんまた、
if(btn==null)から、elseまでは表示できています
import java.io.IOException;//インポート
import java.io.PrintWriter;//インポート
import javax.servlet.ServletException;//インポート
import javax.servlet.http.HttpServlet;//インポート
import javax.servlet.http.HttpServletRequest;//イ
ンポート
import javax.servlet.http.HttpServletResponse;//イ
ンポート
public class CalendarServlet4 extends
HttpServlet{//クラスの定義
public void doGet(HttpServletRequest
request,HttpServletResponse response)//サーブレッ
トの定義
throws ServletException,IOException{//ブラ
ウザを呼ぶメソッドの定義
String
type=request.getParameter("button");
String btn=request.getParameter("button");
response.setContentType("text/html;
charset=UTF-8");//文字コードの設定
String
tmptype1=request.getParameter("httpyear");
String
tmptype2=request.getParameter("httpmonth");
int year=0;
int month=0;
PrintWriter pw=response.getWriter();//pwは
PrintWriter
if(btn==null){
year=2014;
month=7;
HttpCalendar calendar=new
HttpCalendar(year,month);//カレンダーのインスタン
ス化
pw.println("<HTML>");//HTMLの開始
pw.println("<HEAD>");//HEADの開始
pw.println("
<TITLE>Calendar</TITLE>");//TITLEの開始
pw.println("</HEAD>");//HEADの定義
pw.println("<BODY>");//BODYの定義
pw.println("<center>");
pw.println("<form action=省略>");
pw.print("<input type=\"submit\"name=
\"button\"value=\"PREV\">");
pw.print(" ");
pw.println("<input type=\"submit
\"name=\"button\"value=\"NEXT\">");
pw.println("<input type=\"hidden
\"name=\"httpyear\"value=year>");
pw.println("<input type=\"hidden
\"name=\"httpmonth\"value=month>");
pw.println("<br>");
pw.println(year+"年"+month+"月");
pw.println(calendar.getCalendar());
pw.println("<br>");
pw.println("</center>");
pw.println("</form>");
pw.println("</BODY>");//BODYの終了
pw.println("</HTML>");//HTMLの終了
}else if(type.equals("PREV")){
year=Integer.parseInt(tmptype1);//文字
を数字に変換
month=Integer.parseInt(tmptype2);//文
字を数字に変換
HttpCalendar calendar=new
HttpCalendar(year,month);//カレンダーのインスタン
ス化
pw.println("<HTML>");//HTMLの開始
pw.println("<HEAD>");//HEADの開始
pw.println("
<TITLE>Calendar</TITLE>");//TITLEの開始
pw.println("</HEAD>");//HEADの定義
pw.println("<BODY>");//BODYの定義
pw.println("<center>");
pw.println("<form action=省略">
pw.print("<input type=\"submit\"name=
\"button\"value=\"PREV\">");
pw.print(" ");
pw.println("<input type=\"submit\"name=
\"button\"value=\"NEXT\">");
pw.println("<input type=\"hidden\"name=
\"httpyear\"value=year>");
pw.println("<input type=\"hidden\"name=
\"httpmonth\"value=month>");
pw.println("<br>");
pw.println(year+"年"+month+"月");
pw.println(カレンダー表示);
pw.println("</center>");
pw.println("</form>");
pw.println("</BODY>");//BODYの終了
pw.println("</HTML>");//HTMLの終了
}
}
}
エラー
java.lang.NumberFormatException: For input string:
"year"
java.lang.NumberFormatException.forInputSt
ring(NumberFormatException.java:65)
java.lang.Integer.parseInt(Integer.java:49
2)
java.lang.Integer.parseInt(Integer.java:52
7)
CalendarServlet4.doGet(CalendarServlet4.ja
va:46)
javax.servlet.http.HttpServlet.service(Htt
pServlet.java:690)
javax.servlet.http.HttpServlet.service(Htt
pServlet.java:803)
org.apache.catalina.servlets.InvokerServle
t.serveRequest(InvokerServlet.java:420)
org.apache.catalina.servlets.InvokerServle
t.doGet(InvokerServlet.java:134)
javax.servlet.http.HttpServlet.service(Htt
pServlet.java:690)
javax.servlet.http.HttpServlet.service(Htt
pServlet.java:803)
sun.reflect.GeneratedMethodAccessor895.inv
oke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.i
nvoke(DelegatingMethodAccessorImpl.java:43)
java.lang.reflect.Method.invoke(Method.jav
a:601)
org.apache.catalina.security.SecurityUtil$
1.run(SecurityUtil.java:244)
java.security.AccessController.doPrivilege
d(Native Method)
javax.security.auth.Subject.doAsPrivileged
(Subject.java:536)
org.apache.catalina.security.SecurityUtil.
execute(SecurityUtil.java:276)
org.apache.catalina.security.SecurityUtil.
doAsPrivilege(SecurityUtil.java:162)