2013-12-16 12 views
0

내 Jsp 파일은 다음과 같습니다. 그것은 2 개의 버튼이 있습니다. 첫 번째 버튼을 클릭하면 데이터 저장소의 첫 번째 엔티티가 선택되고 두 번째 버튼과 동일해야합니다.특정 버튼 클릭에 따라 Google 애플리케이션 엔진 데이터 저장소에서 특정 항목을 얻는 방법

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
pageEncoding="ISO-8859-1"%> 
<!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=ISO-8859-1"> 
<title>Insert title here</title> 
</head> 
<body> 
    <body style="background-color:black;"> 


<p> 
    <p><input type="button" name="first" value="0C F0 0400" style="background-  
color:#006600; color:#FFFFFF ; height:100px; width:200px"  
onclick="location.href='hello';"> </p> 
<p><input type="button" name="first" value="0D F0 0800" style="background- 
color:#006600; color:#FFFFFF ; height:100px; width:200px" 
onclick="location.href='hello';"> 
</p> 

</body> 
</html> 

이것은 서블릿입니다. 첫 번째 버튼 클릭시 첫 번째 엔티티를 가져 오는 방법과 두 번째 버튼에서 두 번째 엔티티를 클릭하는 방법.

package pack.exp; 
import java.io.IOException; 
import javax.servlet.http.*; 

import com.google.appengine.api.datastore.DatastoreService; 
import com.google.appengine.api.datastore.DatastoreServiceFactory; 
import com.google.appengine.api.datastore.Entity; 
import com.google.appengine.api.datastore.EntityNotFoundException; 
import com.google.appengine.api.datastore.Key; 
import com.google.appengine.api.datastore.KeyFactory; 


@SuppressWarnings("serial") 
public class HelloServlet extends HttpServlet 
{ 
public void doGet(HttpServletRequest req, HttpServletResponse resp) throws 
    IOException 
{ 
    Key k1 = KeyFactory.createKey("Employee","E1");  
    Key k2 = KeyFactory.createKey("Employee","E2");   

    String firstName1 = "Sam"; 
    String lastName1 = "Well"; 

    String firstName2 = "John"; 
    String lastName2 = "Morgan"; 


    Entity bs1 = new Entity(k1); 
    Entity dm1 = new Entity(k2); 

    bs1.setProperty("FN", firstName1);  
    bs1.setProperty("LN", lastName1); 

    dm1.setProperty("FN", firstName2);  
    dm1.setProperty("LN", lastName2); 

    DatastoreService datastore = DatastoreServiceFactory.getDatastoreService(); 
    datastore.put(bs1); 
    datastore.put(dm1); 

    Entity bs2 = null; 
    Entity dm2 = null; 

    try 
    { 
     bs2= datastore.get(k1); 
     dm2= datastore.get(k2); 
    } 

    catch (EntityNotFoundException e) 
    { 
     e.printStackTrace(); 
    } 

    String fName1= (String) bs2.getProperty("FN"); 
    String lName1= (String) bs2.getProperty("LN"); 

    String fName2= (String) dm2.getProperty("FN"); 
    String lName2= (String) dm2.getProperty("LN"); 

    resp.setContentType("text/plain"); 
    resp.getWriter().println("Person1 Details------> " + fName1 + " " + lName1); 

    resp.getWriter().println("Person2 Details------> " + fName2 + " " + lName2); 

} 
} 

답변

0

먼저 서블릿의 doGet() 메소드를 사용하여 값을 데이터 스토어에 저장해야합니다.

이 코드를 사용하면됩니다.

public void doGet(HttpServletRequest req, HttpServletResponse resp) throws 
IOException 
{ 
    Entity employee1=new Entity("Employee","Employee1"); 
    Entity employee2=new Entity("Employee","Employee2"); 
    employee1.setProperty("FN", "Sam");  
    employee1.setProperty("LN", "Sam"); 
    employee2.setProperty("FN", "John");  
    employee2.setProperty("LN", "Morgan"); 
    DatastoreService datastore = DatastoreServiceFactory.getDatastoreService(); 
try{ 
     datastore.put(employee1); 
     datastore.put(employee2); 
    } 
    catch(DatastoreFailureException d){ 
     d.printStackTrace(); 
    } 
} 

그런 다음 doPost 메소드에서 클릭 한 버튼의 값을 가져옵니다. Jsp 코드 나는 당신의 다른 질문에 대답했습니다.

public void doPost(HttpServletRequest req, HttpServletResponse resp) throws 
IOException 
{ 
String key=req.getParameter("good"); 
Key key = KeyFactory.createKey("Employee", key); 
Entity employee=datastore.get(key); 
resp.setContentType("text/plain"); 
resp.getWriter().println("Person Details------> " + employee.getProperty("FN")+ " " +employee.getProperty("LN")); 
} 

희망이 도움이 될 것입니다.

해피 코딩 :)

+0

Util.persistEntity (employee1); – Sandeep

+0

변경하십시오. 데이터 저장소 개체에 Util.persistEntity(). – Bharathi