사용자 이름과 사용자가 관리자인지 여부를 보여주는 표가 있습니다.조건 또는 열 값을 기준으로 행 값을 링크로 만드는 방법
Username Administrator
user1 Yes
user2 No
user3 No
user4 Yes
여기는 테이블의 코드이며 올바르게 작동합니다. 사용자가 관리자 인, "예"관리자가 다른 페이지에 액세스 할 수 클릭 수있는 테이블의 클릭 가능한 링크 될 것입니다 경우 내가 할 노력하고 있어요
<display:table name="${userTable}" class="users" uid ="row">
<display:column style="width: 8%" title="Username" property="username" maxLength="30" sortable="true" />
<display:column style="width: 4%" title="Administrator" property="usertype" sortable="true" />
</display:table>
이다; 사용자가 관리자가 아닌 경우 "아니오"는 테이블의 단순 텍스트입니다.
코드를 작성하기 시작했지만 <display:column>
및 <s:if>
의 사용법을 오해 한 것 같습니다. 나는 그것을 달성하기위한 두 가지 아이디어가 있지만 모두 실패하기 때문입니다. 그래서 나는 사람을 찾고있는 올바른 방향과 올바른 개념을 제발.
여기 내 생각입니다. 값이 "예", 그냥 일반 텍스트 인 경우 내가 코드를 실행하면
<display:table name="${userTable}" class="users" uid ="row">
<display:column style="width: 8%" title="Username" property="username" maxLength="30" sortable="true" />
<s:if test="#session.USER_SESSSION_HANDLE.usertype.contains(\"Yes\")">
<display:column style="width: 4%" title="Administrator" property="usertype" sortable="true" />
</s:if>
</display:table>
는, 테이블이 나는 관리자 열에서 의미있는 변화가없는, 클릭 할 수있는 링크가 없습니다. 그래서 제 첫 번째 아이디어는 성공하지 못합니다.
이전 코드를 삭제합니다. 여기 내 두 번째 생각 : 내 두 번째 생각에
<display:table name="${userTable}" class="users" uid ="row">
<display:column style="width: 8%" title="Username" property="username" maxLength="30" sortable="true" />
<display:column style="width: 4%" title="Administrator" property="usertype" sortable="true" />
<display:column style="width: 5%" title="Link for Administrator" sortable="true">
<s:if test="#session.USER_SESSSION_HANDLE.usertype.contains(\"Yes\")">
<s:url var="editURL" namespace="/AdminLink" action="adminLink_edit">
<s:param name="recordId" value="%{#attr.row.recordId}" />
</s:url>
<s:a href="%{editURL}">It is a link</s:a>
</s:if>
<s:else>
<s:label>It is not a link</s:label>
</s:else>
</display:column>
</display:table>
, 나는 그것이 링크 또는이 링크인지 여부를 표시하는 다른 열을 만들 수 있습니다. 링크 인 경우 추가 액세스를 위해 클릭 할 수 있어야하며, 링크가 아닌 경우 텍스트로 표시됩니다.
코드를 실행하면 새 열이 만들어 지지만 관리자 열에도 행에 "아니요"라고 표시된 경우에도 모든 행에 "링크입니다"가 표시됩니다.
아마도 user1이 관리자이기 때문에 user1을 사용하여 애플리케이션에 액세스 할 수 있습니다. 따라서 행에 "링크입니다."라고 표시되어야하지만 모든 행에 왜 표시되는지 이해할 수 없습니다.
나중에 시스템에 액세스하기 위해 user2 (이 사용자 이름은 관리자가 아님)를 사용합니다. 모든 행이 "링크가 아닙니다"라는 것을 볼 수 있습니다. 다시 한 번 모든 행에 영향을 미칩니다. 내가 <s:if test="#session.USER_SESSSION_HANDLE.usertype.contains(\"Yes\")">
을 사용하기 때문에 나는 추측한다? 그러나 왜 모든 행에 동일한 결과가 표시됩니까?
내가하려는 것은 클릭 가능한 링크로 "예"를 만드는 것이며, "아니오"는 단순한 텍스트입니다. 샘플 표는 다음과 같습니다. (죄송합니다 사실
Username Administrator
user1 **Yes**
user2 No
user3 No
user4 **Yes**
"예"중 ** 내가 underline을 넣을 수 없습니다 실현, 그래서 넣어, 내가 처음 생각이 성공을 달성 할 수는 없지만 생각 나는 링크를 표시하는 여분의 열을 사용하지 않으 .
하지만, 내 두 번째도 생각하지 않는 성공과 나는 문제가 발생하는 부분을 모르겠습니다.
누군가가 내 실수를 알고 기반 링크로 행 값을하는 방법에 대한 제안을 제공 할 것인가 조건 또는 열 값을 입력하십시오. 고마워요.