public void createDocument(String title,String content){いかがですか。だいぶすっきりとした感じになるでしょう? こちらの書き方のほうがずっとわかりやすいので、こっちが基本と考えたほうがよいかも知れませんね。
Document document = Document.newBuilder()
.addField(Field.newBuilder()
.setName("title")
.setText(title))
.addField(Field.newBuilder()
.setName("content")
.setText(content))
.addField(Field.newBuilder()
.setName("datetime")
.setDate(Field.date(Calendar.
getInstance().getTime()))
).build();
Index INDEX = SearchServiceFactory.getSearchService()
.getIndex(IndexSpec.newBuilder()
.setName("mydataIndex"));
try {
INDEX.add(document);
session.setAttribute("message", "ドキュメントを保存しました。");
} catch (RuntimeException e) {
session.setAttribute("message", "保存に失敗しました。");
}
}
※リストが表示されない場合
AddBlockなどの広告ブロックツールがONになっているとリストなどが表示されない場合があります。これらのツールをOFFにしてみてください。
※MyGaeAppServlet.java package com.tuyano.libro.mygaeapp; import java.io.*; import java.util.*; import java.util.logging.*; import javax.servlet.http.*; import com.google.appengine.api.search.*; import com.google.appengine.api.search.IndexSpec.Builder; @SuppressWarnings("serial") public class MyGaeAppServlet extends HttpServlet { private HttpSession session = null; public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException { ……略(後で作成)…… } public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException { response.setContentType("text/html"); request.setCharacterEncoding("utf8"); response.setCharacterEncoding("utf8"); session = request.getSession(); session.setAttribute("message", null); String param = request.getParameter("mode"); if ("create".equals(param)){ String title = request.getParameter("title"); String content = request.getParameter("content"); this.createDocument(title, content); } response.sendRedirect("/helo.jsp"); } public void createDocument(String title,String content){ Document.Builder builder = Document.newBuilder(); Field.Builder field1_builder = Field.newBuilder(); field1_builder.setName("title"); field1_builder.setText(title); builder.addField(field1_builder); Field.Builder field2_builder = Field.newBuilder(); field2_builder.setName("content"); field2_builder.setText(content); builder.addField(field2_builder); Field.Builder field3_builder = Field.newBuilder(); field3_builder.setName("datetime"); Date date = Calendar.getInstance().getTime(); field3_builder.setDate(Field.date(date)); builder.addField(field3_builder); Document document = builder.build(); IndexSpec.Builder spec = IndexSpec.newBuilder(); spec.setName("mydataIndex"); SearchService service = SearchServiceFactory.getSearchService(); Index index = service.getIndex(spec); try { index.add(document); session.setAttribute("message", "ドキュメントを保存しました。"); } catch (RuntimeException e) { session.setAttribute("message", "保存に失敗しました。"); } } } ※helo.jsp <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <%@ page import="java.util.ArrayList" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Sample jsp</title> <style> h1{ font-size: 16pt; background: #AAFFAA; padding: 5px; } table tr td { background: #DDFFDD; padding: 2px; } </style> </head> <body> <h1>Hello App Engine!</h1> <hr> <p id="msg"><%=session.getAttribute("message") %></p> <form method="post" action="/mygaeapp"> <table> <tr> <td>モード</td> <td><select id="mode" name="mode"> <option value="create">データを作成</option> <option value="find">データを検索</option> </select></td> </tr> <tr> <td>タイトル</td> <td><input type="text" id="title" name="title" size="40"></td> </tr> <tr> <td>コンテンツ</td> <td><textarea id="content" name="content" cols="40" rows="5"></textarea></td> </tr> <tr> <td></td> <td> <input type="submit" value="送信する"> </td> </tr> </table> </form> <hr> <%=session.getAttribute("result") %> </body> </html>
<< 前へ | 次へ >> |