我有一个JSP和一个可以互相协作的Java类。
我的Java类中有一个布尔变量。 如果其值已更改为true,我想一直使用AJAX检查它。 JavaScript警报会显示一条消息。
在JSF中,有类似的东西:
<h:outputScript rendered="#{categoryBean.showCategoryNameAlert}">
alert("CategoryName already exist!");
</h:outputScript>
但我不知道如何在JSP中做到这一点?
答案 0 :(得分:1)
您可以尝试使用以下示例。
前端部分:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
setInterval(function(){
$.get('/backEnd',function(responseText) {
if(responseText == 'true') {
alert("Variable has been set");
}
});
},1000);
});
</script>
</head>
<body>
</body>
</html>
后端部分:
@WebServlet(name = "checkerServlet", urlPatterns = { "/backEnd" })
public class CheckerServlet extends HttpServlet {
private YourClass yourClass;
@Override
public void init() {
yourClass = new YourClass();
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/plain");
PrintWriter writer = response.getWriter();
if(yourClass.getBooleanValue) {
writer.write("true");
} else {
writer.write("false");
}
writer.close();
}
@Override
protected void doPost(final HttpServletRequest request, final HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
具有boolean
变量的类的示例 -
public class YourClass {
private static boolean booleanValue = false;
public void setBooleanValue() {
booleanValue = true;
}
public void resetBooleanValue() {
booleanValue = false;
}
public boolean getBooleanValue() {
return booleanValue;
}
...
}
如果您没有使用servlet,可以使用此调用:
<%@ page import="fullpackagename.YourClass" %>
<jsp:useBean id="yourClass" scope="request" class="fullpackagename.YourClass" />
<%
YourClass yourClass = new YourClass();
// check your variable here
%>
将其添加到表示层。
自动刷新代码:
<%response.setIntHeader("Refresh", 1); %>
答案 1 :(得分:0)
你需要一个监听特定网址的servlet。给它“/ check”。
在servlet中:
if(category.categoryName != null) // or any thing you want
out.write("true"); // out is response outputstream
在jsp中:ajax请求始终请求“/ check”并在看到true时发出警告。