-1
jtable、jsp、servletsを使って厳密な操作のコードを書いています。jtableでレコードを編集するときにDB値をドロップダウンに入れる方法
レコードを編集中に、drop down
ボタンが必要です。このボタンは、データベースから他のデータフィールドを自動的に取り込むことができます。
誰でもお手伝いできますか?あなたを設計するためにきたドロップダウンにDBから値を取得するための私のHTMLコード、
<%@ 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>Welcome</title>
<!-- Include one of jTable styles. -->
<link href="css/metro/crimson/jtable.css" rel="stylesheet" type="text/css" />
<link href="css/jquery-ui-1.10.3.custom.css" rel="stylesheet" type="text/css" />
<!-- Include jTable script file. -->
<script src="js/jquery-1.8.2.js" type="text/javascript"></script>
<script src="js/jquery-ui-1.10.3.custom.js" type="text/javascript"></script>
<script src="js/jquery.jtable.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function() {
$('#PersonTableContainer').jtable({
title: 'Usecase Information',
paging: true,
pageSize: 100,
sorting: true,
defaultSorting: 'Name ASC',
actions: {
listAction: 'CRUDController?action=list',
createAction:'CRUDController?action=create',
updateAction: 'CRUDController?action=update',
deleteAction: 'CRUDController?action=delete'
},
fields: {
usecase_keyname: {
title: 'Usecase Name',
list : true
},
is_custom_activity: {
title: 'IS Custom Usecase'
},
tower_name: {
title: 'Tower Name'
},
activity_name: {
title: 'Activity Name'
},
is_custom_activity: {
title: 'IS Custom Activity'
},
status_name: {
title: 'Status Name'
},
start_date: {
title: 'Start Date'
},
end_date: {
title: 'End Date'
},
actual_end_date: {
title: 'Actual End Date'
},
comments: {
title: 'Comments'
}
}
});
$('#PersonTableContainer').jtable('load');
});
</script>
</head>
<body>
<div id="PersonTableContainer">
</div>
</body>
</html>
私のサーブレットコード、
package ignio.controller;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.google.gson.Gson;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.reflect.TypeToken;
import ignio.dao.CrudDao;
import ignio.model.User;
public class CRUDController extends HttpServlet {
private static final long serialVersionUID = 1L;
private CrudDao dao;
public CRUDController() {
dao=new CrudDao();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request,response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
if(request.getParameter("action")!=null){
List<User> lstUser=new ArrayList<User>();
String action=(String)request.getParameter("action");
Gson gson = new Gson();
response.setContentType("application/json");
if(action.equals("list")){
try{
//Fetch Data from User Table
lstUser=dao.getAllUsers();
//Convert Java Object to Json
JsonElement element = gson.toJsonTree(lstUser, new TypeToken<List<User>>() {}.getType());
JsonArray jsonArray = element.getAsJsonArray();
String listData=jsonArray.toString();
//Return Json in the format required by jTable plugin
listData="{\"Result\":\"OK\",\"Records\":"+listData+"}";
response.getWriter().print(listData);
}catch(Exception ex){
String error="{\"Result\":\"ERROR\",\"Message\":"+ex.getMessage()+"}";
response.getWriter().print(error);
ex.printStackTrace();
}
}
/*else if(action.equals("create") || action.equals("update")){
User user=new User();
if(request.getParameter("userid")!=null){
int userid=Integer.parseInt(request.getParameter("userid"));
user.setUserid(userid);
}
if(request.getParameter("firstName")!=null){
String firstname=(String)request.getParameter("firstName");
user.setFirstName(firstname);
}
if(request.getParameter("lastName")!=null){
String lastname=(String)request.getParameter("lastName");
user.setLastName(lastname);
}
if(request.getParameter("email")!=null){
String email=(String)request.getParameter("email");
user.setEmail(email);
}
try{
if(action.equals("create")){//Create new record
dao.addUser(user);
lstUser.add(user);
//Convert Java Object to Json
String json=gson.toJson(user);
//Return Json in the format required by jTable plugin
String listData="{\"Result\":\"OK\",\"Record\":"+json+"}";
response.getWriter().print(listData);
}else if(action.equals("update")){//Update existing record
dao.updateUser(user);
String listData="{\"Result\":\"OK\"}";
response.getWriter().print(listData);
}
}catch(Exception ex){
String error="{\"Result\":\"ERROR\",\"Message\":"+ex.getStackTrace().toString()+"}";
response.getWriter().print(error);
}
}else if(action.equals("delete")){//Delete record
try{
if(request.getParameter("userid")!=null){
String userid=(String)request.getParameter("userid");
dao.deleteUser(Integer.parseInt(userid));
String listData="{\"Result\":\"OK\"}";
response.getWriter().print(listData);
}
}catch(Exception ex){
String error="{\"Result\":\"ERROR\",\"Message\":"+ex.getStackTrace().toString()+"}";
response.getWriter().print(error);
}
}
}*/
}}
}
私はデータベースから取得する必要があります。私は値をハードコードしたくない。ドロップダウンリストから値を選択してデータを入力する必要があります –
よろしいですか。それで答えに述べたように 'サーブレット'を書く必要があります。私のサンプルデータを間違って理解していただきたいと思います。これは単なるフォーマットで、オプションがjtableでどのように期待されています。 –
私の更新情報をご覧ください。あなたの部分は残っています。 –