0

I want to send data to controller action and I want to get value from action. But I cannot send value and I cannot convert value getting from controller to boolean, string etc..

contact =(List)response.sendRedirect("contact/login.action");

My contactController's login.action is below: (Also, I tried the boolean function)

@RequestMapping(value="/contact/login.action")
public @ResponseBody Map<String,? extends Object> login(@RequestParam Object data) throws Exception {

    try{

        List<Contact> contacts = contactService.login(data);

    return getMap(contacts);
    } catch (Exception e) {


    }
    return null;
}

My jsp codes are below:

    <%@page import="com.loiane.web.ContactController"%>
    <%@page import=" com.loiane.model.Contact"%>
    <%@page import="java.util.List"%>
    <%@ page language="java" pageEncoding="UTF-8"%>
 <%

     String result;

     List<Contact> contact;
     String loginUsername = request.getParameter("loginUsername");
     String loginPassword = request.getParameter("loginPassword");
     contact =(List)response.sendRedirect("contact/login.action");
     out.println(request.getAttribute("message"));

  if ((null != loginUsername && loginUsername.length() > 0) && (null != loginPassword && loginPassword.length() > 0)) {

    if (contact.size()>0)

    result = "{success:true}";
    else
        result = "{success:false,errors:{reason:'Login failed.Try again'}}";

} else {
    result = "{success:false,errors:{reason:'Login failed.Try again'}}";
}
%>
<%=result %>
4

1 回答 1

0

而不是从 JSP 对您的 servlet 执行 response.sendRedirect,您的表单应该将 servlet 作为其操作。

  <form action='contact/login.action' method='post'>

您的 servlet 需要实现 doPost。只有一个名为 login 的方法是行不通的。

 public void doPost(HttpServletRequest request, HttpServletResponse  response) throws IOException, ServletException

您的 JSP 应该是发送到 servlet 的登录表单(通过 HTML,当您单击提交时,而不是通过 JSP 代码),并且 servlet 应该执行所有登录工作,包括 request.getParameter 调用。

那么如果出现登录错误,servlet应该response.sendRedirect到登录表单jsp。

请注意 response.sendRedirect 实际上将浏览器发送到另一个页面。因此它永远不会返回列表或任何其他数据类型。

最好不要在 JSP 中使用 scriptlet。您可以在 servlet 中执行所有操作。只需像使用 HTML 页面一样使用 jsp。

于 2013-11-13T00:54:01.107 回答