将数据从 Spring FORM“传递”到 DAO 的通用方法是啥?

Posted

技术标签:

【中文标题】将数据从 Spring FORM“传递”到 DAO 的通用方法是啥?【英文标题】:What is a generic way to "pass" the data from Spring FORM to DAO?将数据从 Spring FORM“传递”到 DAO 的通用方法是什么? 【发布时间】:2013-11-20 12:55:47 【问题描述】:

我正在 Spring Web MVC 框架 中实现一个基本的登录表单。 我的目标如下:

    从用户那里获取用户名密码 处理它,即找出用户名和密码是否 匹配来自数据库的那些 返回响应 - 登录成功或失败

我使用我的控制器成功地从用户那里获取了所有信息,但不幸的是我在第二点卡住了,因为我不知道到底是怎么回事 Spring 处理这种情况。

我这样想:DAO 是一个接口,它负责从一侧的表单和另一侧的数据库传输数据。在这一点上,其他一切对我来说都很神奇。

启发我

----------------------------------------------- --------------------------------------

login.jsp


<!-- code -->
<div class="content">
            <table>
                <tr>
                    <td><form:label path="username">Username</form:label></td>
                    <td><form:input path="username" /></td>
                    <td><form:errors path="username" cssClass="error"/></td>
                </tr>
                <tr>
                    <td><form:label path="password">Password</form:label></td>
                    <td><form:input path="password" /></td>
                    <td><form:errors path="password" cssClass="error"/></td>
                </tr>
            </table>                
</div>
<!-- code -->

FormDao.java


package si.src.dataAccess;

import si.src.forms.Obrazec;

public interface FormDao 

    /* DAO methods */
    public void saveForm(Obrazec obrazec);


FormDaoImpl.java


package si.src.dataAccess;

import org.springframework.stereotype.Repository;

import si.src.forms.Obrazec;

@Repository
public class FormDaoImpl implements FormDao

    public void saveForm(Obrazec obrazec) 
        // TODO Auto-generated method stub  
    


================================================ ====================================

【问题讨论】:

【参考方案1】:

您为什么不使用 Spring Security,它会为您处理所有这些。它甚至包含数据库认证。

http://www.mkyong.com/spring-security/spring-security-form-login-using-database/

不要重新发明*** ;-)

【讨论】:

markusw 感谢您的推荐。当然,如果您有登录表单,这是必不可少的。但是除了登录表单之外,我还有其他几种表单可以以相同的方式处理。您知道在这种情况下我该如何进行吗?谢谢 只需将您的 dao 注入您的控制器。使用 ModelAndView 对象并将值绑定到您的输入字段。当请求到达控制器时,ModelAndView 对象将被传递,您可以访问输入到输入字段中的值...viralpatel.net/blogs/spring-3-mvc-handling-forms 或者您可以使用 HTTP 方式并使用标准 GET 或 POST 参数并将它们在您的控制器中映射到适当的方法docs.spring.io/spring/docs/3.0.0.M3/reference/html/ch16s11.html 是的,确实如此,但就我而言,如果您要传递一个非常大的表格,这不是一个非常优雅的解决方案。如果我错了,请纠正我。

以上是关于将数据从 Spring FORM“传递”到 DAO 的通用方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 <form:select> Spring MVC 传递数据

如何将参数从 DAO 中的方法传递到 SQL 查询?

c#将事件的参数从另一个类传递到主类

将数据从一种形式传递到另一种形式的问题

怎样从一个form传递数据到另一个form

如何使用spring boot将数据从一个html表单传递到多个表