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>
| << 前へ | 次へ >> |