0

jspに単純なテーブルがあります。

<table class="table table-bordered">
    <tr>
        <th>#</th>
        <th>Name</th>
        <th>Surname</th>
        <th>Age</th>
        <th>Email</th>
    </tr>
    <c:forEach var="employee" items="${employeeList}">
        <tr class=row>
            <td>${employee.id}</td>
            <td>${employee.name}</td>
            <td>${employee.surname}</td>
            <td>${employee.age}</td>
            <td>${employee.email}</td>
        </tr>
    </c:forEach>
</table>

私のコントローラー:

   @Controller
public class BrowseController {

    @Autowired
    private SpringJdbcDao springJdbcDao;

    public void setSpringJdbcDao(SpringJdbcDao springJdbcDao) {
        this.springJdbcDao = springJdbcDao;
    }

    @RequestMapping(value = "/browse")
    public String browseEmployees(Model model) {
        List<Employee> employeeList = new ArrayList<Employee>(springJdbcDao.getEmployeesList());
        model.addAttribute("employeeList", employeeList);
        return "browse";
    }

    @RequestMapping(value = "/browse/details/{id}", method = RequestMethod.GET)
    public String viewDetails(@PathVariable("id") int id, Model model) {
        Employee employee = springJdbcDao.getEmployeeById(id);
        model.addAttribute("data", employee);
        return "details";
    }
}

テーブルの行をクリックして従業員の詳細情報を表示するには、「/browse/details/{id}」にリダイレクトする必要があります。どうやってやるの?

4

1 に答える 1

0

data-従業員 ID を簡単に取得できるように、行に属性を追加することをお勧めします。

<tr class=row data-emp_id="${employee.id}"></tr>

行がクリックされたときにサーバーへの AJAX 呼び出しを行うようになりました。

var dataType='html';/* this is default and argument for `$.get` not needed for default, is shown for understanding*/
$('tr').click(function(){        
   $.get('/path/to server/', { id: $(this).data('emp_id') }, function( response){
       /* do something with response be it html, xml or JSON response*/
   }, dataType)
});

サーバーでidは、フォーム コントロール要素と同じように を受け取り、name="id"対応するデータを送り返します。

于 2013-01-26T23:05:54.283 に答える