我有一个主页,其中有标题,侧边栏和div标签。
当用户点击"注册"时,Registration.jsp
被加载到div标签中。
成功提交注册表后,我想将其转发到我要显示html" bookimages.html"的同一页面。在div标签中。
我尝试设置属性值来执行此操作。
这是我的mainpage.css:
<body id="userprofilepage">
<% request.setAttribute("regisstatus",null); %>
<div>
<%@ include file="header.jsp" %><br>
</div>
<div id="mainsidebar">
<%@ include file="sidebar.html" %>
</div>
<div>
<%@ include file="priviledges.html" %>
</div>
<div id="contentarea">
<% if(request.getAttribute("regisstatus")==null)
{ %>
<%@ include file="bookimages.html" %>
<% } else if((request.getAttribute("regisstatus").toString()).equals("success")) { %>
<%@ include file="Register.jsp" %>
<% } else { %>
<h3>Sorry could not register.. Try again</h3>
<% } %>
</div>
</body>
jquery的
在我的标题中,我有一个注册按钮:
$(function(){
$("#register").click(function(){
$("#contentarea").load("RegistrationServlet.jsp");
});
});
......工作正常。并调用RegistrationServlet.java:
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
//Takin all parameters
String fname = request.getParameter("fname");
//System.out.println(fname);
String lname = request.getParameter("lname");
//System.out.println(lname);
String mobileno = request.getParameter("mobno");
//System.out.println(mobileno);
String pwd = request.getParameter("password");
//System.out.println(uid);
// String cpwd = request.getParameter("password");
//System.out.println(pwd);
String email = request.getParameter("email");
String off_add= request.getParameter("off_add");
String perm_add = request.getParameter("perm_add");
String[] r = request.getParameterValues("role");
for(int i=0;i<r.length;i++)
{
System.out.println(r[i]);
}
ArrayList<Integer> role=new ArrayList<Integer>();
for(int i=0;i<r.length;i++)
{
Integer r1=new Integer(RoleManager.getRoleid(r[i]));
role.add(r1);
}
/*for(int i=0;i<r.length;i++)
{
Integer r1=new Integer(RoleManager.getRoleid(r[i]));
role.add(r1);
}*/
String g[]=request.getParameterValues("genre");
ArrayList<Integer> genre=new ArrayList<Integer>();
for(String i : g)
{
Integer g1=new Integer(GenreManager.getGenreid(i));
genre.add(g1);
}
// creating user object
RegisteredUser uobj = new RegisteredUser();
//setting values in RegisteredUser obect
uobj.setFname(fname);
uobj.setLname(lname);
uobj.setPassword(pwd);
uobj.setMobileno(mobileno);
uobj.setPassword(pwd);
uobj.setEmail(email);
uobj.setOffadd(off_add);
uobj.setPermadd(perm_add);
uobj.setRole(role);
uobj.setGenre(genre);
uobj.setUid("abc2");
//send user object to manger
boolean suc=UserManager.createUser(uobj);
System.out.println("user object created");
if(suc)
request.setAttribute("regisstatus", "success");
else
request.setAttribute("regisstatus", "fail");
RequestDispatcher rd=request.getRequestDispatcher("/userprofilepage.jsp");
rd.forward(request, response);
}
}
但在我的主页中,未设置request属性。你能帮我找出问题吗?
答案 0 :(得分:0)
首先,使用.load()
函数的方式不正确。
在您的代码中,$("#contentarea")
div在服务器端计入第一个请求,然后不再计算。您的.load()
函数会将 RegistrationServlet.jsp 的结果加载到您的div中,但不会根据它刷新div。
我认为你sholud在“RegistrationServlet.jsp”上做了一个ajax请求,并且成功刷新了你的页面,或者在 RegistrationServlet.jsp 中建立了逻辑所以.load()
函数调用可以保持不变。