문제

내 사용자 정의 태그에서 여러 속성을 사용하려고합니다.

<mytaglib:mytag firstname="Thadeus" lastname="Jones" />

Taghandler 코드의 속성에 어떻게 액세스 할 수 있습니까?

도움이 되었습니까?

해결책

실제로 당신이 요청한 것에 대한 답은 아니지만, 나는 (예 : 결코 쓰지 않았다) Taghandler의 것을 싫어하지만 나는 사랑합니다. 태그 파일. JSP 파일을 사용하여 사용자 정의 태그를 작성할 수 있습니다. 당신은 아마 그들에 대해 알고 있고 사용할 수 없거나 적용 할 수 없지만 만일을 대비하여 언급 할 것이라고 생각했습니다.

다른 팁

매개 변수에 액세스하려면 Taghandler 클래스는 개인 구성원을 정의하고 액세서 방법을 제공해야합니다.

public class TagHandler extends TagSupport {
    private String firstName;
    private String lastName;

    public void setFirstName(String firstname) { firstName = firstname; }
    public void setLastName(String lastname) { lastName = lastname;}
}

그런 다음 Taghandler 변수를 통해 매개 변수에 액세스 할 수 있습니다.

public int doStartTag() throws JspException {
    pageContext.getOut().print(lastName + ", " + firstName);
}

여전히 문제가있는 경우 이름 지정 규칙을 두 번 확인하면 Java Interpeter가 세터 방법이 무엇인지 추측하려고합니다. 따라서 매개 변수가 "FirstName"인 경우 매개 변수가 "lastName"인 경우 설정 메소드가 "setFirstName"이어야합니다. 세트 매개 변수는 "setLastName"이어야합니다. 표준 Java 이름 지정 컨벤션이기 때문에 전자를 따르기 위해 노력합니다.

이 문제의 해결책을 입증하기 위해 비유를 취할 수 있습니다. index.jsp에서 검색된 "사용자 이름"및 "비밀번호"가 있다고 가정하고 사용자 정의 태그 속성으로 데이터를 전달해야합니다. 제 경우에는 작동합니다

<body>

<%
String name=request.getParameter("name");
String password=request.getParameter("password");
%>

<%@ taglib prefix="c" uri="/WEB-INF/mytag.tld" %>

<c:logintag name="<%=name %>" password="<%=password %>"/>

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top