2015-02-05 2 views
0

struts 2 iterator을 사용하여 JSPArrayList (학생 세부 정보)의 문자열을 인쇄하고 있습니다. ArrayList의 세부 정보 수가 많을수록 사용자가 학생 이름을 클릭 할 때마다 학생의 다른 세부 정보가 표시되도록 필드 중 하나에 대한 하이퍼 링크를 유지할 생각입니다. 그 같은 클릭은 내가 그 학생의 다른 세부 사항을 얻기 위해 Dao에 갈 수있는 곳에서 행동을 부르는 것입니다.struts2 반복기에서 하이퍼 링크를 제공하는 방법

내 문제는 반복기에서 요소에 하이퍼 링크를 유지하는 방법, 심지어 어떻게 이름을 동작에 전달할 것인가입니다. 누구든지이 문제를 해결하도록 도와 줄 수 있습니까?

<table class="display" border="1"> 
<tr> 
    <th>Username</th> 
    <th>Role</th> 
    <th>Name</th> 
    <th>Surname</th> 
    <th>Contact number</th> 
    <th>Email</th> 
</tr> 
<s:iterator value="list"> 
    <tr> 
     <td><s:property value="userName"/></td> 
     <td><s:property value="role"/></td> 
     <td><s:property value="name"/></td> 
     <td><s:property value="initial"/></td> 
     <td><s:property value="contact"/></td> 
     <td><s:property value="email"/></td> 
    </tr> 
</s:iterator> 

이 말은 __aadya__, __rolenum__, __name__, __surname__, __contact__, __email__입니다. 최종 사용자가 사용자 이름을 클릭하면 아디다의 다른 세부 정보를 얻을 수 있어야합니다.

+0

정확한 문제는 무엇입니까? 그냥 S2 태그를 사용하십시오. –

답변

1

several ways에서이를 수행 할 수 있습니다.

  1. 로드

    숨겨진 그들과 함께 세부 열심히, 페이지 렌더링이 테이블은 페이지 매김을하는 경우 (그리고해야한다), 예 (10) 또는 페이지 당 50 개 행을 보여줍니다, 당신은 평가할 수있다 행동을 부르는 것이 좋을 경우 또는 대신 모든 학생들을 세부 정보와 함께로드하고 페이지에 숨길 수 있습니다. 이 시점에서 사용자 이름을 클릭하면 이미 페이지에있는 학생의 세부 정보를 표시하거나 숨기는 간단한 자바 스크립트가 실행됩니다.

  2. 로드 양식 포스트

    와 세부 서라운드 형태는 학생의 세부 사항을로드 조치를 가리킨 ID를 가진 숨겨진 매개 변수를 포함하거나, 쿼리 문자열에 넣어 각각의 사용자 이름. AJAX와 함께 세부, 요소 (앵커, 사업부의 TD 자체 등)에 자바 스크립트 이벤트를 부착

    전화 작업에 AJAX 호출을 수행

  3. 로드가 학생의 세부 정보를로드하고 JSON 또는 JSP 스 니펫 또는 스트림 등의 응답을 구문 분석하여 페이지에 삽입합니다 (수동으로 HTML 요소를 작성하거나 그대로 응답을 대상에 주입). div). SO에 대한 몇 가지 예가 있습니다 (예 : thisthis). 오래 전에 사용하지 않았던 AJAX 용 struts2-dojo 태그를 사용하지 말아라. raw jQuery (이 경우 더 좋다) 또는 Struts2-jQuery-plugin (괜찮다)을 사용하라.

해결 방법 1은 초고속, 난 당신이 필요한 것 같아요. 해결책 3은 솔루션 2 (예전 방식)처럼 단일 데이터 객체를 얻기 위해 전체 페이지를 재 게시하는 것이 수치 스럽기 때문에 유익합니다.

+0

jQuery와 함께 ajax를 사용했습니다. ''내 스크립트가'<스크립트 유형 = "텍스트/자바 스크립트"> \t $ ('하세요. 아이디'). 클릭 (함수() { \t \t VAR 아이디 \t \t = $ (이).attr ('id'); \t \t var ajax \t = 새 XMLHttpRequest(); \t \t ajax.open ("POST", "getUserDetails", false); \t \t ajax.send (id); \t \t}); '여기서 userName을 얻고 있습니다. 이 특정 사용자의 __role__을 (를) 얻을 수 있습니까? – Aadya

+1

할 수 있지만 할 수는 없습니다. 사용자 ID가 있으면 조치의 세부 사항 서버 측과 함께 역할을로드하십시오. 그렇지 않으면 사용자는 방화 광구로 페이지를 편집하여 역할을 얻게됩니다. –

관련 문제