2016-04-01 8 views
-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); 
      }    
     } 
    }*/ 
    }} 
} 

答えて

1

Issue Screenshot

、スクリーンショットを参照してくださいフィールド(例:Status Name)は、このように

status_name: { 
    title: 'Status Name', 
    options: '@Url.Action("fetch_status")' 
}, 

そしてURLは、あなたが上記のようなデータを返すために、サーブレットの一部を設計する必要が

options: { '1': 'Active', '2': 'Pending', '3': 'Failed' } 

、以下の形式で値(サンプル)を返す必要があります。

更新:

あなたのサーブレットは、次のようになり、

else if(action.equals("fetch_status")){//Fetch Status 
    try { 

     // Your java method fetch Status_id and Status_Value 
     // (I've used collections map for mapping name with ID) 
     Map<Integer, String> status = // Your_Part_Here (Maybe dao.fetchStatus() like this) 

     // Convert Java Object to Json 
     String json = gson.toJson(status); 
     response.getWriter().print(json); 

    } catch (Exception e) { 
     String error = "{\"Result\":\"ERROR\",\"Message\":" + e.getMessage() + "}"; 
     response.getWriter().print(error); 
    } 
} 

は、この情報がお役に立てば幸いです。詳細はSampleを参照してください。これが役に立ったら教えてください。

+0

私はデータベースから取得する必要があります。私は値をハードコードしたくない。ドロップダウンリストから値を選択してデータを入力する必要があります –

+0

よろしいですか。それで答えに述べたように 'サーブレット'を書く必要があります。私のサンプルデータを間違って理解していただきたいと思います。これは単なるフォーマットで、オプションがjtableでどのように期待されています。 –

+0

私の更新情報をご覧ください。あなたの部分は残っています。 –

関連する問題