2017-06-15 11 views
0

名前のようなテキストボックスに新しい値を入力して、自分のプロフィールにこれらの変更を表示して、ユーザーのデータを編集したいと考えています。 Ajaxを使用しようとしましたが、そこにURLがあるはずがわかりません。 それは編集フォームとAjaxスクリプトを使用して、私のJSPファイルです:ボタンの変更されたデータを更新するにはどうすればよいですか?

<%@ page language="java" contentType="text/html; charset=UTF-8" 
    pageEncoding="UTF-8"%> 
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<script type="text/javascript"> 
    $("edit").click(function() { 
     var firstName = $(request.getParameter("firstname")).val(); 
     $.ajax({ 
      url: '', 
      type: 'POST', 
      data: { 
       firstName: firstName 
      } 
     }); 
    }); 
</script> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
<title>${title}</title> 
</head> 
<body> 
<h4>To edit your information fill the fields, please.</h4> 
    <form name='f' action="${pageContext.request.contextPath}/j_spring_security_check" method='POST'> 
     <table> 
     <tr> 
      <td>First Name:</td> 
      <td><input type='text' name='firstname' id='firstname' value='${firstname}'></td> 
     </tr> 
     <tr> 
      <td><input name="edit" type="submit" value="Submit" /></td> 
     </tr>  
     </table> 
    </form> 

私は更新があり、クラスのいずれかに最初の名前のための方法を取得:だから

public class UserInfoDAOImpl extends JdbcDaoSupport implements UserInfoDAO {  
    @Autowired 
    public UserInfoDAOImpl(DataSource dataSource) { 
     this.setDataSource(dataSource); 
    }  
//.....other methods 

@Override 
public void editFirstName(String userName, String fName){ 
    String sql = "update Users set FirstName = ? where Username = ?"; 
    Object[] params = new Object[] {fName, userName}; 
    this.getJdbcTemplate().update(sql, params); 
} 

@Override 
    public String getFirstName(String userName) { 
     // TODO Auto-generated method stub  
     String sql = "select u.FirstName from Users u where u.Username = ? "; 
     Object[] params = new Object[] { userName };   
     String firstName = (String)getJdbcTemplate().queryForObject(sql, params, String.class); 
     return firstName; 
    } 
} 

私は本当にに得ることはありません既に書かれたこれらのメソッドを使用してデータを更新し、ユーザープロファイルでこれらの変更を取得します。 私はAjaxを初めて使っているので、何か助けてもらってうれしいです。

答えて

0

あなたのJSPで間違っています、j_spring_security_checkはデフォルトURLの春のログインです。

firstnameを更新するには、コントローラ上で@RequestMapping@ResponseBodyを実行して、Ajaxリクエストを処理する必要があります。

+0

ありがとうございました。あなたはデフォルトのURLについてより具体的になりますか?それはなぜ間違っているのですか? –

+0

あなたはSpring Securityを知っていますか? officiel doc [春のリファレンス](http://docs.spring.io/spring-security/site/docs/3.1.x/reference/springsecurity-single.html#ns-form-and-basic)を参照してください。 –

関連する問題