JSP العلامة المخصصة مكتبة (اجتياز سمات)

StackOverflow https://stackoverflow.com/questions/224637

  •  03-07-2019
  •  | 
  •  

سؤال

وأنا أحاول أن استخدام سمات متعددة في بلدي العلامة المخصصة، منها مثلا:

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

وكيف يمكنني الوصول إلى السمات في رمز TagHandler؟

هل كانت مفيدة؟

المحلول

وليس حقا الجواب على ما سألت، ولكن أنا أكره (أي قد كتبت أبدا) في TagHandler ولكن أنا أحب <وأ href = "http://java.sun.com/j2ee/1.4/docs/tutorial/doc/ JSPTags5.html "يختلط =" نوفولو noreferrer "> العلامة ملفات . يتيح لك كتابة العلامات المخصصة باستخدام ملفات 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);
}

إذا كنت لا تزال تواجه مشكلات تحقق اصطلاحات التسمية الخاصة بك مرتين، وinterpeter جافا يحاول أن يخمن ما هي الطريقة اضع. حتى إذا كان لديك المعلمة هو "الاسم الأول" من طريقة مجموعة يجب أن يكون "setFirstName" إذا كانت المعلمة يجب أن يكون "اسم العائلة" المعلمة مجموعة "setlastname". I برفر اتباع السابق، لأنه هو اصطلاح التسمية جافا القياسية.

لإثبات حل هذه المشكلة يتيح اتخاذ القياس. لنفترض أن لدينا "اسم المستخدم" و "كلمة السر" التي يتم استردادها من 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