私はサーブレットで休止状態のアプリを持っています。 要求からInt
を取得できないか、セッションに追加できないようです。 どのように?私は自分のHQLコードでそれを使用したいと思います。 私はちょうどInteger
をString
に置き換えて汚れたソリューションを作成しましたが、HQLはそれに反応できません。java.lang.Integer.parseInt(不明なソース)null request.getParameter
整数を比較したいと思います。 JSP 数入力タイプから
- 取得価格(私が使用する番号入力)
- サーブレットはJava関数に(文字列の微細作品)を入力として
- 使用変数を、それらを要求することにより、変数になるだろう
- それらをHQL引数として渡します(Stringで動作しますが、String varsと比較できません)
整数が必要です。ヌル
java.lang.Integer.parseInt(不明なソース)
java.lang.Integer.parseInt(不明なソース)
:私は
java.lang.NumberFormatException
をgoods.prodいるエラー。
public class prod implements Serializable {
@Id @GeneratedValue
@Column(name = "id")
private String id;
private String catid;
private String name;
private Integer price;
public prod() {
}
public prod(String id, String catid, String name, Integer price) {
this.id = id;
this.catid = catid;
this.name = name ;
this.price = price;
}
public String getid() {
return id;
}
public void setid(String id) {
this.id = id;
}
public String getcatid() {
return catid;
}
public void setcatid(String catid) {
this.catid = catid;
}
public String getname() {
return name;
}
public void setname(String name) {
this.name = name;
}
public Integer getprice() {
return price;
}
public void setprice(Integer price) {
this.price = price;
}
}
servlet.Indexservlet
public class IndexServlet extends HttpServlet {
private static final long serialVersionUID = -8670416133536111566L;
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
// PrintWriter out = response.getWriter();
String catid = request.getParameter("catid");
String id = request.getParameter("id");
String name = request.getParameter("name");
Integer pricel = Integer.parseInt(request.getParameter("pricel"));
Integer priceh = Integer.parseInt(request.getParameter("priceh"));
prod dot = IndexService.getprodbyparam(catid,name,pricel,priceh);
request.getSession().setAttribute("prod", dot);
response.sendRedirect("index.jsp");
}
}
IndexService
import HibernateUtil.HibernateUtil;
import goods.prod;
public class IndexService {
public static prod getprodbyparam(String catid,String name,Integer pricel, Integer priceh) {
Session session = HibernateUtil.openSession();
Transaction tx = null;
prod prod = null;
try {
tx = session.getTransaction();
tx.begin();
Query query = session.createQuery("from prod where name=? and price between ? and ?");
query.setString(0, name);
query.setInteger(1, pricel);
query.setInteger(2, priceh);
prod = (prod)query.uniqueResult();
tx.commit();
} catch (Exception e) {
if (tx != null) {
tx.rollback();
}
e.printStackTrace();
} finally {
session.close();
}
return prod;
}
}
index.jspの部分
<tr>
<td>Price h</td>
<td><input type="number" name="priceh" maxlength="100" /></td>
</tr>
<%
prod prod = (prod) session.getAttribute("prod");
%>
<b>You have<% if (null == prod) out.println("No text entered.");%></b>
<br/>
<b>selected</b>
<br/>
<%if (null!=prod) out.println(prod.getid()+ " "+prod.getname()+ " "+prod.getprice());%></b>
<br/>
エラー
type Exception report
message null
description The server encountered an internal error that prevented it from fulfilling this request.
exception
java.lang.NumberFormatException: null
java.lang.Integer.parseInt(Unknown Source)
java.lang.Integer.parseInt(Unknown Source)
servlet.IndexServlet.doPost(IndexServlet.java:29)
javax.servlet.http.HttpServlet.service(HttpServlet.java:648)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
注意した:根本原因の完全なスタックトレースは、Apache Tomcatの/ 8.0.33ログで利用可能です。
例外の完全なスタックトレースを投稿できますか? –
フルスタック投稿 –