我有一個JSP的一些領域。當我填寫字段並單擊發送按鈕時,我必須檢查數據庫中的數據是否存在;如果沒有,我會彈出一個提示用戶數據庫中不存在數據的彈出窗口。如果他們選擇繼續,它會在屏幕上顯示;如果沒有,它會返回到起點。問題顯示彈出(Java 1.4中)
我被困在那裏我顯示彈出式,因爲服務器不能顯示在客戶端上彈出
我有一個JSP的一些領域。當我填寫字段並單擊發送按鈕時,我必須檢查數據庫中的數據是否存在;如果沒有,我會彈出一個提示用戶數據庫中不存在數據的彈出窗口。如果他們選擇繼續,它會在屏幕上顯示;如果沒有,它會返回到起點。問題顯示彈出(Java 1.4中)
我被困在那裏我顯示彈出式,因爲服務器不能顯示在客戶端上彈出
就讓Servlet的店在請求範圍的條件,讓有條件的JSP打印的JavaScript代碼。
的Servlet:
boolean exist = yourDAO.exist(parameters);
request.setAttribute("exist", exist);
request.getRequestDispatcher("page.jsp").forward(request, response);
JSP(使用JSTL):
<c:if test="${!exist}">
<script>
if (confirm('Data does not exist, do you want to continue?')) {
// Do whatever you want when user want to continue ("goes on screen").
} else {
// Do whatever you want when user don't want to continue ("returns to starting point").
}
</script>
</c:if>
request.setAttribute(「exist」,exist); 不行我在日食的setAttribute(字符串,Object)已沒有了request.setAttribute(字符串,布爾) – Mercer 2010-07-29 15:34:53
錯誤我根本不指望你還在就死了Java 1.4或更舊:)使用'Boolean'相反或升級到至少5.0,支持[autoboxing](http://java.sun.com/j2se/1.5.0/docs/guide/language/autoboxing.html)。這是目前非常罕見的情況。在未來的問題中,我認爲你可以提到1.4或更高版本,這很明智。 Java 5.0帶來了很多改進。 – BalusC 2010-07-29 15:35:38
我對現有的項目,我不能改變 – Mercer 2010-07-29 15:39:59
我會做大致如下的行somethign:
首先,設置一個布爾值標誌,而這樣做你的數據庫檢查
<%
boolean POPUP_FLAG = /*condition check*/
%>
再後來,如果你的渲染代碼,你可以檢查標誌,並在頁面中包含一個window.open適當
<%
if (POPUP_FLAG) {
%>
<script>
window.open("popup.jsp", "_blank");
</script>
/*
Include here any special details to display on the main page in popup mode
*/
<%
} else {
%>
/*
Include here the normal information you would want displayed when not in popup mode
*/
<%
}
%>
[如何避免在JSP中的Java代碼(http://stackoverflow.com/questions/3177733/howto-avoid-java-code-in-jsp-files)。 – BalusC 2010-07-29 15:03:37
您使用的是全回調用後發送的數據,或者是你使用Ajax來檢查的數據服務器? – 2010-07-29 14:06:13
使用完整的回發調用 – Mercer 2010-07-29 14:09:45