[JavaScript] Why - document.getElementById()에서 [object HTMLInputElement] 출력.

하쮸·2025년 4월 25일
0

Error 또는 Why & How

목록 보기
18/43

    public ArrayList<User> search(String userName) {
        System.out.println("userName = " + userName);
        String SQL = "SELECT * FROM user WHERE userName LIKE ?";
        ArrayList<User> userList = new ArrayList<>();
        try {
            preparedStatement = connection.prepareStatement(SQL);
            System.out.println("preparedStatement = " + preparedStatement);
            preparedStatement.setString(1, "%" + userName + "%");  // LIKE에 와일드카드 추가
            resultSet = preparedStatement.executeQuery();
            System.out.println("userName 파라미터: " + userName);


            while (resultSet.next()) {
                User user = new User();
                user.setUserName(resultSet.getString(1));
                user.setUserAge(resultSet.getInt(2));
                user.setUserGender(resultSet.getString(3));
                user.setUserEmail(resultSet.getString(4));
                userList.add(user);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return userList;
    }
<body>
    <br>
        <div class="form-group row pull-right">
            <div class="col-xs-8">
                <input class="form-control" id="userName" onkeyup="searchFunction()" type="text" size="20">
            </div>
            <div class="col-xs-2">
                <button class="btn btn-primary" onclick="searchFunction()" type="button">검색</button>
            </div>
        </div>
  
  
  		....
  
  
</body>
</html>
<script type="text/javascript">
    var request = new XMLHttpRequest();
    function searchFunction() {
        request.open("Post", "./UserSearchServlet?userName=" + encodeURIComponent(document.getElementById("userName")), true)
        request.onreadystatechange = searchProcess;
  • 디버깅을 해보니 resultSet에서 값을 제대로 받아오지도 못하고
    System.out.println()으로 출력해보니
    userName : [object HTMLInputElement] 이렇게 출력되었음.
    • 이 때문에 while문이 정상적으로 실행 되지 않았음.
document.getElementById("userName")
  • .value가 없다면 document.getElementById("userName")는 해당 요소 자체를 반환하게 됨.
document.getElementById("userName").value;
  • .value<input> 요소와 같은 폼 필드에서 사용자가 입력한 값을 가져오는 속성.
profile
Every cloud has a silver lining.

0개의 댓글