<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Komentáře k příspěvku: EL hack &#8230;</title>
	<atom:link href="http://blog.3rojka.com/item/el-hack/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.3rojka.com/item/el-hack/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=el-hack</link>
	<description></description>
	<lastBuildDate>Thu, 13 Aug 2009 05:02:12 +0200</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.3</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>Od: 3rojka</title>
		<link>http://blog.3rojka.com/item/el-hack/#comment-534</link>
		<dc:creator>3rojka</dc:creator>
		<pubDate>Sat, 14 Apr 2007 16:14:30 +0000</pubDate>
		<guid isPermaLink="false">http://blog.3rojka.com/index.php/2007/04/09/el-hack/#comment-534</guid>
		<description>&lt;texy&gt;S custom tagem jsem zde už jednou souhlasil, ale jinak jsi mne nepřesvědčil.
Nevím proč bych v různých projektech implementoval jinak methodu getGreetingWithName(), resp methodu get třídy GreetingParamMapper, která je implementace privatní třídy mého beanu. A s tím čtením implementace bych řekl, že to musím vždycky pokud nemáš popsaný interface takže tady taky nevidím rozdíl.
Takže správně by to vypadalo takhle:
/---code java
	/**
	 * mappuje EL vyraz ${myBean.greetingWithName[name]}
	 * a vrací pozdrav uživateli se jmenem name
	 */
	public GreetingParamMapper getGreetingWithName()

\---
A kdyby GreetingParamMapper byl potomkem nějaké abstaktní třídy, třeba ParameterMapper (což jsem zda nedělal jenom pro přehlednost příkladu) tak by ti to ani nepřišlo divné.

Ale jinak máš pravdu je to hack.</description>
		<content:encoded><![CDATA[<p><texy>S custom tagem jsem zde už jednou souhlasil, ale jinak jsi mne nepřesvědčil.<br />
Nevím proč bych v různých projektech implementoval jinak methodu getGreetingWithName(), resp methodu get třídy GreetingParamMapper, která je implementace privatní třídy mého beanu. A s tím čtením implementace bych řekl, že to musím vždycky pokud nemáš popsaný interface takže tady taky nevidím rozdíl.<br />
Takže správně by to vypadalo takhle:<br />
/&#8212;code java<br />
	/**<br />
	 * mappuje EL vyraz ${myBean.greetingWithName[name]}<br />
	 * a vrací pozdrav uživateli se jmenem name<br />
	 */<br />
	public GreetingParamMapper getGreetingWithName()</p>
<p>\&#8212;<br />
A kdyby GreetingParamMapper byl potomkem nějaké abstaktní třídy, třeba ParameterMapper (což jsem zda nedělal jenom pro přehlednost příkladu) tak by ti to ani nepřišlo divné.</p>
<p>Ale jinak máš pravdu je to hack.</texy></p>
]]></content:encoded>
	</item>
	<item>
		<title>Od: Lukáš Vlček</title>
		<link>http://blog.3rojka.com/item/el-hack/#comment-533</link>
		<dc:creator>Lukáš Vlček</dc:creator>
		<pubDate>Sat, 14 Apr 2007 08:07:14 +0000</pubDate>
		<guid isPermaLink="false">http://blog.3rojka.com/index.php/2007/04/09/el-hack/#comment-533</guid>
		<description>&lt;texy&gt;Škoda, že teď nejsem týden v praci, kdyby ses stavil, tak bych ti řekl, že jsem se s touto potřebou už setkal a nakonec se jako nejšťastnější vždy ukázal JSP Custom Tag (není třeba nic hackovat). Tedy, pokud jsem pochopil dobře podstatu tvého problému. Ostatně myslím, že Tom by ti to také doporučil. Né, že by tvoje řešení postrádalo kreativitu, ale myslím, že se může stát, že nemusí být uplně vždy dobře čitelné (k tomu, aby čtenář pochopil, co se opravdu dějě musí zkoumat i implementaci tvojí Mapy a nemá nikdy jistotu, že v různých projektech nebudeš používata různé implementace s odlišným chováním).</description>
		<content:encoded><![CDATA[<p><texy>Škoda, že teď nejsem týden v praci, kdyby ses stavil, tak bych ti řekl, že jsem se s touto potřebou už setkal a nakonec se jako nejšťastnější vždy ukázal JSP Custom Tag (není třeba nic hackovat). Tedy, pokud jsem pochopil dobře podstatu tvého problému. Ostatně myslím, že Tom by ti to také doporučil. Né, že by tvoje řešení postrádalo kreativitu, ale myslím, že se může stát, že nemusí být uplně vždy dobře čitelné (k tomu, aby čtenář pochopil, co se opravdu dějě musí zkoumat i implementaci tvojí Mapy a nemá nikdy jistotu, že v různých projektech nebudeš používata různé implementace s odlišným chováním).</texy></p>
]]></content:encoded>
	</item>
	<item>
		<title>Od: 3rojka</title>
		<link>http://blog.3rojka.com/item/el-hack/#comment-532</link>
		<dc:creator>3rojka</dc:creator>
		<pubDate>Wed, 11 Apr 2007 10:09:32 +0000</pubDate>
		<guid isPermaLink="false">http://blog.3rojka.com/index.php/2007/04/09/el-hack/#comment-532</guid>
		<description>&lt;texy&gt;Budu muset něco udělat s tou Texy, ale jinak jsem se na do díval do toho zdrojáku, takže se to dalo pochopit.</description>
		<content:encoded><![CDATA[<p><texy>Budu muset něco udělat s tou Texy, ale jinak jsem se na do díval do toho zdrojáku, takže se to dalo pochopit.</texy></p>
]]></content:encoded>
	</item>
	<item>
		<title>Od: Jan Vršinský</title>
		<link>http://blog.3rojka.com/item/el-hack/#comment-531</link>
		<dc:creator>Jan Vršinský</dc:creator>
		<pubDate>Wed, 11 Apr 2007 09:54:38 +0000</pubDate>
		<guid isPermaLink="false">http://blog.3rojka.com/index.php/2007/04/09/el-hack/#comment-531</guid>
		<description>&lt;texy&gt;Formátování tady funguje jinak než testovací formátování Texty!, tak se v mém příspěvku nezobrazilo vše, pro jistotu tedy bez ohraničujících závorek:

pouziti tagu
%@ taglib prefix=”model” tagdir=”/WEB-INF/tags/model” %

volani metody
model:call model=”myModel” method=”myMethod” p1=”hello” p2=”0.5” /</description>
		<content:encoded><![CDATA[<p><texy>Formátování tady funguje jinak než testovací formátování Texty!, tak se v mém příspěvku nezobrazilo vše, pro jistotu tedy bez ohraničujících závorek:</p>
<p>pouziti tagu<br />
%@ taglib prefix=”model” tagdir=”/WEB-INF/tags/model” %</p>
<p>volani metody<br />
model:call model=”myModel” method=”myMethod” p1=”hello” p2=”0.5” /</texy></p>
]]></content:encoded>
	</item>
	<item>
		<title>Od: 3rojka</title>
		<link>http://blog.3rojka.com/item/el-hack/#comment-529</link>
		<dc:creator>3rojka</dc:creator>
		<pubDate>Wed, 11 Apr 2007 05:05:52 +0000</pubDate>
		<guid isPermaLink="false">http://blog.3rojka.com/index.php/2007/04/09/el-hack/#comment-529</guid>
		<description>&lt;texy&gt;JSP Tagy jsou taky dobrá možnost, mě to sice zrovna tohle připadlo složitější, ale jinak dobré. Taky asi zaleží na co to člověk potřebuje a pak si může vybrat.
Jinak já jsem tu svoji metodu zatím, nikdy nepoužil jenom mě to tak napadlo a zatím se mi to nezdá jako špatný nápad.</description>
		<content:encoded><![CDATA[<p><texy>JSP Tagy jsou taky dobrá možnost, mě to sice zrovna tohle připadlo složitější, ale jinak dobré. Taky asi zaleží na co to člověk potřebuje a pak si může vybrat.<br />
Jinak já jsem tu svoji metodu zatím, nikdy nepoužil jenom mě to tak napadlo a zatím se mi to nezdá jako špatný nápad.</texy></p>
]]></content:encoded>
	</item>
	<item>
		<title>Od: Jan Vršinský</title>
		<link>http://blog.3rojka.com/item/el-hack/#comment-528</link>
		<dc:creator>Jan Vršinský</dc:creator>
		<pubDate>Tue, 10 Apr 2007 19:48:58 +0000</pubDate>
		<guid isPermaLink="false">http://blog.3rojka.com/index.php/2007/04/09/el-hack/#comment-528</guid>
		<description>&lt;texy&gt;Zajímavý nápad v článku. V důsledku mi řešení ale nepřijde moc šťastné, neboť vyžaduje přípravu Java kódu pro to, aby ho šlo volat z EL.

Scriptlety mají zase způsobují problémy zkombinované s iteračními a větvícími tagy.

Systém, které používám já, je vytvoření vlastního tagu pro volání metod. Když tag vytvořím pomocí JSP2.0, nemusím řešit TLD a stačí ho umístit do WEB-INF.

----------

Výsledné volání //jakékoliv// metody z //jakékoliv// třídy potom vypadá tak, jak je uvedeno níže.

&gt;
&gt;
&gt; … zde inicializace modelu
&gt;
&gt; &lt;b&gt;&lt;/b&gt;

Má tag library se jmenuje model, protože jsem ji vytvořil v rámci jednoho prototypového projektu, ve kterém jsem celý MVC pattern implementoval pomocí JSP2.0 a EL (pro možnost online editace funkčnosti), takže v JSP controllerech jsem potřeboval volat metody modelů.

Počet parametrů tagu je dynamický od 0 do 99, to se v tag souboru dělá pomocí


Samotná metoda se zavolá přes reflection API. Tag má dva nepovinné parametry, result pro možnost uložení výsledku do atributu requestu a paramCount pro specifikování počtu parametrů. Počet parametrů je nutný specifikovat v případě, kdy chci volat metody s např. 5 parametry a poslední tři z nich musí být prázdné stringy. EL by to potom bral, jako kdyby parametry byly jen dva a zavolal by jinou metodu.

----------

Pokud máte zájem, tak zdroják toho tagu je tady:
www.janvrsinsky.com/java/call.zip

Při jeho vytváření jsem vycházel z článku
http://www.javaworld.com/javaworld/jw-05-2003/jw-0523-calltag.html?page=1
a ještě z nějakého tutorialu k JSP2.0, bohužel už nevím.

Těším se na zpětnou vazbu a na další názory k tomuto tématu. Jak to řešíte vy?</description>
		<content:encoded><![CDATA[<p><texy>Zajímavý nápad v článku. V důsledku mi řešení ale nepřijde moc šťastné, neboť vyžaduje přípravu Java kódu pro to, aby ho šlo volat z EL.</p>
<p>Scriptlety mají zase způsobují problémy zkombinované s iteračními a větvícími tagy.</p>
<p>Systém, které používám já, je vytvoření vlastního tagu pro volání metod. Když tag vytvořím pomocí JSP2.0, nemusím řešit TLD a stačí ho umístit do WEB-INF.</p>
<p>&#8212;&#8212;&#8212;-</p>
<p>Výsledné volání //jakékoliv// metody z //jakékoliv// třídy potom vypadá tak, jak je uvedeno níže.</p>
<p>&#38;gt;<br />
&#38;gt;<br />
&#38;gt; … zde inicializace modelu<br />
&#38;gt;<br />
&#38;gt; <b></b></p>
<p>Má tag library se jmenuje model, protože jsem ji vytvořil v rámci jednoho prototypového projektu, ve kterém jsem celý MVC pattern implementoval pomocí JSP2.0 a EL (pro možnost online editace funkčnosti), takže v JSP controllerech jsem potřeboval volat metody modelů.</p>
<p>Počet parametrů tagu je dynamický od 0 do 99, to se v tag souboru dělá pomocí</p>
<p>Samotná metoda se zavolá přes reflection API. Tag má dva nepovinné parametry, result pro možnost uložení výsledku do atributu requestu a paramCount pro specifikování počtu parametrů. Počet parametrů je nutný specifikovat v případě, kdy chci volat metody s např. 5 parametry a poslední tři z nich musí být prázdné stringy. EL by to potom bral, jako kdyby parametry byly jen dva a zavolal by jinou metodu.</p>
<p>&#8212;&#8212;&#8212;-</p>
<p>Pokud máte zájem, tak zdroják toho tagu je tady:<br />
<a href="http://www.janvrsinsky.com/java/call.zip" rel="nofollow">http://www.janvrsinsky.com/java/call.zip</a></p>
<p>Při jeho vytváření jsem vycházel z článku<br />
<a href="http://www.javaworld.com/javaworld/jw-05-2003/jw-0523-calltag.html?page=1" rel="nofollow">http://www.javaworld.com/javaworld/jw-05-2003/jw-0523-calltag.html?page=1</a><br />
a ještě z nějakého tutorialu k JSP2.0, bohužel už nevím.</p>
<p>Těším se na zpětnou vazbu a na další názory k tomuto tématu. Jak to řešíte vy?</texy></p>
]]></content:encoded>
	</item>
	<item>
		<title>Od: Honza Novotný</title>
		<link>http://blog.3rojka.com/item/el-hack/#comment-527</link>
		<dc:creator>Honza Novotný</dc:creator>
		<pubDate>Tue, 10 Apr 2007 18:33:51 +0000</pubDate>
		<guid isPermaLink="false">http://blog.3rojka.com/index.php/2007/04/09/el-hack/#comment-527</guid>
		<description>&lt;texy&gt;No já jsem si v takových případech vždy vystačil se scriptletem. Faktem je, že mnoha lidem scriptlety v JSP vadí - snižují přehlednost. Nicméně u expression scriptletů () si myslím tomu tak není.</description>
		<content:encoded><![CDATA[<p><texy>No já jsem si v takových případech vždy vystačil se scriptletem. Faktem je, že mnoha lidem scriptlety v JSP vadí &#8211; snižují přehlednost. Nicméně u expression scriptletů () si myslím tomu tak není.</texy></p>
]]></content:encoded>
	</item>
	<item>
		<title>Od: Cyril</title>
		<link>http://blog.3rojka.com/item/el-hack/#comment-526</link>
		<dc:creator>Cyril</dc:creator>
		<pubDate>Tue, 10 Apr 2007 12:32:31 +0000</pubDate>
		<guid isPermaLink="false">http://blog.3rojka.com/index.php/2007/04/09/el-hack/#comment-526</guid>
		<description>&lt;texy&gt;tuto metodu spokojene pouzivam uz par let. Jeste bych doporucil si udelat spolecneho predka takovychto Map,  v kterem by se implementovaly ostani nezazivne metody, ktere vraci null a nikdy se nepouziji...</description>
		<content:encoded><![CDATA[<p><texy>tuto metodu spokojene pouzivam uz par let. Jeste bych doporucil si udelat spolecneho predka takovychto Map,  v kterem by se implementovaly ostani nezazivne metody, ktere vraci null a nikdy se nepouziji&#8230;</texy></p>
]]></content:encoded>
	</item>
</channel>
</rss>
