내가 찾은 많은 해결책 중에서, 나는 그들 중 누구도 나를 위해 일할 수없는 것처럼 보입니다. 내 JSP 파일의 드롭 다운 목록을 가지고 :양식 제출 후 드롭 다운 상자에서 선택된 값을 유지하는 방법은 무엇입니까?
는<select name="chosenOne" onchange="javascript:getUsers(this.value);">
<option value="0" onclick="javascript:getUsers(this.value);">All Modules</option>
<c:forEach items="${modules}" var="module">
<option value="${module.id}"><c:out value="${module.title}"/></option>
</c:forEach>
</select></p>
그것은 "모든 모듈"옵션을 제외하고, 내 데이터베이스에서 동적으로 채 웁니다.
<script type="text/javascript">
function getUsers(id) {
if (id != "0"){
document.updateForm.id.value = id;
}
else{
document.updateForm.id.value = "0";
}
document.updateForm.submit();
}</script>
그리고 여기에 다른 것들 사이에 드롭 다운 상자를 다루는 내 서블릿 코드입니다 : 여기 내 자바 스크립트 함수는 onchange를 이벤트의
이 protected void process(final HttpServletRequest request, final HttpServletResponse response)
throws ServletException, IOException {
long modID = 0;
String url = "jsp/user/administration.jsp";
request.setAttribute("modules", dataAccessor.getAllModules());
if (isParameterValid(request.getParameter("id"))) {
modID = Long.parseLong(request.getParameter("id"));
request.setAttribute("users", getUsersFromModule(modID));
System.out.println(modID);
} else if (!isParameterValid(request.getParameter("id"))) {
request.setAttribute("users", dataAccessor.getAllUsers());
} else {
request.setAttribute("errorMessage", "There was a problem retrieving users!");
url = "jsp/error.jsp";
}
//request.setAttribute("formerSelect", modID);
request.getRequestDispatcher(url).forward(request, response);
}
그래서 내가 할 수있는 방법을 선택한 드롭 다운 값에 남아 양식을 새로 고친 후 드롭 다운 상자가 나타 납니까? 이전에 선택한 항목의 값만 드롭 다운에 포함하는 "formerSelect"속성을 설정하는 방법을 살펴 보았습니다. 그런데 어떤 이유로 내 드롭 다운을 내 옵션 태그 내의 "selected"값에 할당하려 할 때 쓸모가 없었습니다. 어떤 도움이라도 대단히 감사합니다.
request.setAttribute("selectedModule", request.getParameter("chosenOne"));
을 선택한으로 그 후 당신은 옵션을 표시해야합니다 :
이 작동하지 않습니다. 폼을 새로 고친 후에도 여전히 "모든 모듈"로 돌아갑니다. –
작동해야합니다. 간단한 예제를 만들었습니다. https://www.dropbox.com/s/o6d2xeidz2xyhbr/select_pass_param.zip?dl=0 –
코드를 잘못된 위치에 배치해야합니다. request.setAttribute ... 내 서블릿 클래스 내에서 이동합니까? "$ {module.id == selectedModule? 'selected': ''}"<---- 이것은 내게 부두 같아 보입니다. 이것이 무엇을하는지 설명해 주시겠습니까? 감사합니다. –