středa 10. srpna 2005

Diskusní konference a skupiny asi nefrustrují jenom mě

Z duše mi promluvil René Stein v druhé části spotu, kde se pokusil vylíčit několik důvodů proč už, tak často nepřispívá do diskusních skupin a konferencí.

Absence FAQ dokumentu - začátečnící jsou v každé konferenci vítáni, ale vždy je lepší, když jsou dotazy, které se už objevily x-krát a zodpovězeny v samostatném a na konferenci nezávislém dokumentu, než když se odpověď napíše nově příchozím pokaždé znova a znova přímo do konference.

Amen! Věčný mor všech diskusních skupin, neustále se opakující dotazy. Tipoval bych, že na dotaz typu MySQL a kódování jsem odpovídal v poslední době snad desetkrát. Na druhou stranu když se někdo nenaučí používat vyhledávaní, jak se naučí používat FAQ dokument. Na druhou stranu je lepší někoho odkázat na URL s FAQ než mu říci nechť laskavě vyhledávání.

Konference by měla být rozdělena minimálně na dvě další - jedna konference by byla pro začátečnické dotazy a druhá pro pokročilé dotazy. Není příjemné se prohrabovat nediferencovanými maily, kdy v jednom mailu pisatel řeší záludnosti webových služeb a WSDL specifikace, a hned v následujícím mailu se někdo jiný potýká se základní syntaxí jazyka C#. Řešení obou dotazů je bezesporu pro oba tazatele stejně důležité, ale myslím, že jejich příspěvky nepatří do jedné konference.

Pokud těch dotazů není tolik za jeden den, tak se mohou i míchat. Pokud se ovšem otevře denně deset nových vláken, pak to má smysl. Ve dvou hlavních konferencích Javy (Builder.cz, Java.cz) se situace vyprofilovala do té míry, že začátečníci píší povětšinou na Builder. Otázkou je, jak dlouho tahle "přírodní rovnováha" vydrží?

Napočítal jsem ve svém poštovním klientu zhruba (je jich víc, ale některé nejsou aktivní) 15 diskusních skupin, které odebírám. Abych byl upřímný, tak dneska kromě dvou javovských sleduji maximálně dvě další. Všechny ostatní mi běží ze setrvačnosti a pro případ hledání přes Google Desktop Search. No a přispívám už jenom do těch javovských.

Dříve jsem býval hodně aktivní ve skupinách JavasCriptu, ale pak u mě došlo ke stádiu saturace. Stále se opakující příspěvky typu proč mi nefunguje document.all, proč mi nefunguje tenhle kód v Mozille a nebo jak otevřít javascriptem soubor. Zajímavé a pokročilé téma, které by stálo za to diskutovat, se objevilo tak jednou za půl roku.

Související články:

pondělí 8. srpna 2005

How to detect bean property in JSTL?

I need detect java bean property inside JSP page. I didn't found any way how to solve this problem in JSTL or more precisely through expression language. In some cases view code iterates over returned model (java beans) , but doesn’t know which kind of bean is in model. It would be for example bean represents Car or House and every one has various properties to be displayed.

Consider this example:

 
   <c:forEach var="foo" items="${model}">         
   <TR>
     <TD id="P"><c:out value="${foo.price}"/></TD>
    </TR> 
 

We iterate over collection of model data and write price information to output. But it is possible that this instance of model hasn’t property price and code ${foo.price} causes exception. I don’t really know how to detect if bean has some property through expression language and therefore i made simply tag for this purpose (detect property on bean). This tag use reflection to determine if bean has appropriate property.

 
     protected int doStartTagInternal() throws Exception {
        .
        .
        .
        Field field[] = bean.getClass().getDeclaredFields();        
        for (int i = 0; i < field.length; i++) {
            if(prop.equals(field[i].getName())){
                pageContext.setAttribute("hasProperty", prop);
                break;
            }
        }        
        return SKIP_BODY;
     }
 

Simply modification of prevous example:

 
    <c:forEach var="foo" items="${model}">                 
    <TR>
       <t:hasProperty javaBean="${foo}" property="price" /> 
       <c:if test="${hasProperty != null}">
         <TD id="P">
           <c:out value="${foo.price}"/>   
          </TD>
        </c:if>
     </TR>   
 

I would like to notice that maybe would be better to define a function (by the help of JSP expression language) that can be invoked in an expression.