2017-03-25 6 views
0

基本的にデータベースからデータを取り出し、必要な値を配列に格納しておきます。しかし、HTML入力フィールドに値を設定する際に問題があります。私は3つのフィールドウェールズの名前、英語の名前、性別を持っています。だから私はウェールズ語を保持するためにフォームにウェールズ入力フィールドが必要です。どうすればいい?Javaサーブレットは、サーブレットの実行後にHTMLの入力フィールドに内容を入力します。

HTMLコード。

<html> 
<head> 
    <title>Academi Gymraeg</title> 
    <meta charset="UTF-8"> 
    <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
    <link rel="stylesheet" href="styles.css"> 
</head> 
<body> 
    <h1>Academi Gymraeg</h1> 
    <h2>Modify Vocabulary</h2> 
    <div class="login-form"> 
     <div class="login-elements"> 
      <br> 
      <form action="instructorServlet" name="searchVocab" method="post"> 
       <input type="hidden" name="type" value="searchVocab" /> 
       Word: 
       <input type="text" name="word" class="inputBox" required><br><br> 
       Language:<br> 
       <select name="language" class="dropDown"> 
        <option value="English" selected>English</option> 
        <option value="Welsh">Welsh</option> 
       </select><br><br> 
       <button type="submit" class="button" name="search" value="search" 
         >Search</button><br><br> 
      </form> 
      <form action="instructorServlet" name="modifyVocab" method="get"> 
       <input type="hidden" name="type" value="modifyVocab" /> 
       Welsh Name: 
       <input type="text" name="welshName" class="inputBox" required><br><br> 
       English Name: 
       <input type="text" name="englishName" class="inputBox" required><br><br> 
       Gender:<br> 
       <select name="gender" class="dropDown"> 
        <option value="Masculine" selected>Masculine</option> 
        <option value="Feminine">Feminine</option> 
       </select><br><br> 
       <button type="submit" class="subButton" name="modifyEntry" value="Modify Entry" 
         >Modify Entry</button> 
       <button type="reset" class="subButton" name="modifyEntry" value="Modify Entry" 
         >Reset</button> 
      </form><br> 
      <form action="instructorServlet" name="backToMenu" method="post"> 
       <input type="hidden" name="type" value="backToMenu" /> 
       <button type="submit" class="button" name ="backToMenu" value="backToMenu" 
         >Back To Menu</button> 
      </form> 
     </div> 
    </div> 
</body> 

サーブレットコード

protected void processRequest(HttpServletRequest request, HttpServletResponse response) 
     throws ServletException, IOException { 
    String form = request.getParameter("type"); 
if ("searchVocab".equals(form)) { 
     String searchFor = request.getParameter("search"); 

     if (searchFor != null) { 
      String word = request.getParameter("word"); 
      String language = request.getParameter("language"); 
      String values[] = database.searchFor(word, language); 
      response.getOutputStream().println("<script> window.location = \"modify-vocab.html\";</script>"); 
      response.getOutputStream().println("<script> document.getElementById(\"welshName\").value = " + values[0] + ";\n" 
        + " document.getElementById(\"englishName\").value = " + values[1] + ";\n" 
        + " document.getElementById(\"gender\").value = " + values[2] + "; </script>"); 
     } 
    } 

フォームのリロード、しかし、値は、彼らはちょうど空白のロード入力フィールドに置かれていません。

答えて

1

サーブレットは必要な値を作成してJSPビューに転送する必要があります。

@Override 
protected void doPost(final HttpServletRequest request, final HttpServletResponse response) throws ServletException, IOException { 
    // ... code to build your values 

    // Set the values 
    request.setAttribute("welshName", welshName); 
    request.setAttribute("englishName", englishName); 
    request.setAttribute("gender", gender); 

    // Ask the view to take care of the values 
    request.getRequestDispatcher("view.jsp").forward(request, response); 
} 

あなたの意見。

<% 

final String welshName = (String) request.getAttribute("welshName"); 
final String englishName = (String) request.getAttribute("englishName"); 
final String gender = (String) request.getAttribute("gender"); 

%> 

Welsh Name: <input type="text" name="welshName" class="inputBox" value="<% out.print(welshName); %>"/> 
English Name: <input type="text" name="englishName" class="inputBox" value="<% out.print(englishName); %>"/> 

Gender: 
<select name="gender" class="dropDown"> 
    <option value="Masculine" <% out.print("masculine".equals(gender) ? "selected" : ""); %>>Masculine</option> 
    <option value="Feminine" <% out.print("feminine".equals(gender) ? "selected" : ""); %>>Feminine</option> 
</select> 
+0

ありがとうございました。 =) –

関連する問題