Как передать параметрв из сервлета в XSL
От: Vovka2b  
Дата: 26.03.04 11:50
Оценка:
меня ест такой XSL :
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
<xsl:output encoding="Windows-1251" method="html" indent="yes"/>
<xsl:template match="navigation">
<xsl:param name="menu_id" select="1"/>
........
</xsl:template>
</xsl:stylesheet>
Как мне из сервлета передать в шаблон пареметр?
в сервлете код такой:
InputStream xslStream = getServletContext().getResourceAsStream("/menu_left.xsl" );
Source xslSource = new StreamSource( xslStream );
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer( xslSource );
/* пробывал вот так, но ничегоне поулчается
transformer.setParameter("menu_id","2");
*/

// perform transformation and deliver content to client
transformer.transform( xmlSource, result );
Re: Как передать параметрв из сервлета в XSL
От: Lucker Беларусь http://lucker.intervelopers.com/
Дата: 26.03.04 11:58
Оценка:
Здравствуйте, Vovka2b, Вы писали:

пиши просто
<xsl:param name="menu_id"/>

а потом
transformer.setParameter("menu_id","2");

параметру значение можно присвоить только раз.
ICQ# 333355130
Re: Как передать параметрв из сервлета в XSL
От: dshe  
Дата: 26.03.04 12:00
Оценка:
Здравствуйте, Vovka2b, Вы писали:

V> меня ест такой XSL :

V><?xml version="1.0" encoding="UTF-8"?>
V><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
V>    <xsl:output encoding="Windows-1251" method="html" indent="yes"/>
V>    <xsl:template match="navigation">
V>       <xsl:param name="menu_id" select="1"/>
V>               ........
V>    </xsl:template>
V></xsl:stylesheet>

V>Как мне из сервлета передать в шаблон пареметр?
V>в сервлете код такой:
V>   InputStream xslStream = getServletContext().getResourceAsStream("/menu_left.xsl" );
V>   Source xslSource = new StreamSource( xslStream );
V>   TransformerFactory transformerFactory = TransformerFactory.newInstance();
V>   Transformer transformer = transformerFactory.newTransformer( xslSource );
V>   /* пробывал вот так, но ничегоне поулчается :xz: 
V>   transformer.setParameter("menu_id","2");
V>   */

V>   // perform transformation and deliver content to client
V>   transformer.transform( xmlSource, result );


попробуй <param> вынести на уровень выше -- из <template> в <stylesheet>.
--
Дмитро
Re[2]: Как передать параметрв из сервлета в XSL
От: C0s Россия  
Дата: 26.03.04 12:04
Оценка:
Здравствуйте, Lucker, Вы писали:

L>Здравствуйте, Vovka2b, Вы писали:


L>пиши просто

L>
L><xsl:param name="menu_id"/>
L>

L>а потом
L>
L>transformer.setParameter("menu_id","2");


L>

L>параметру значение можно присвоить только раз.

в крайнем случае, всегда можно попробовать динамику сделать через преобразовываемый xml, предусмотрев в нем нечто типа
<самый_объемлющий_элемент>
<menu id="X"/>
<somedata>...</somedata>
</самый_объемлющий_элемент>

при генерации этого xml вместо X подставляется нужное значение ("2")
Re[2]: Как передать параметрв из сервлета в XSL
От: Lucker Беларусь http://lucker.intervelopers.com/
Дата: 26.03.04 12:10
Оценка:
Здравствуйте, dshe, Вы писали:

D>Здравствуйте, Vovka2b, Вы писали:


V>> меня ест такой XSL :

D>
V>><?xml version="1.0" encoding="UTF-8"?>
V>><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
V>>    <xsl:output encoding="Windows-1251" method="html" indent="yes"/>
V>>    <xsl:template match="navigation">
V>>       <xsl:param name="menu_id" select="1"/>
V>>               ........
V>>    </xsl:template>
V>></xsl:stylesheet>
D>


D>попробуй <param> вынести на уровень выше -- из <template> в <stylesheet>.


а я и не заметил...
ICQ# 333355130
Re[3]: передча параметрв из сервлета в XSL. не получается:(
От: Vovka2b  
Дата: 26.03.04 13:05
Оценка:
теперь что-то стало передаваться, но не то.
XML у меня имеет вид:
<?xml version="1.0" encoding="UTF-8"?>
<navigation>
<menu>
<id>top</id>
<title>top</title>
<menu_up>
<id>root</id>
<title>Главная</title>
<url>index.jsp</url>
<menu_left>
<id>welcomepage</id>
<title>Описание</title>
<url>about.jsp</url>
</menu_left>
<menu_left>
<id>Login</id>
<title>Вход в систему</title>
<url>login.jsp</url>
</menu_left>
</menu_up>
<menu_up>
<id>info</id>
<title>Информация</title>
<url>index.jsp</url>
<menu_left>
<id>info</id>
<title>Информация</title>
<url>/info/info.jsp</url>
</menu_left>
<menu_left>
<id>Структура</id>
<title>Структура</title>
<url>/info/struct.jsp</url>
</menu_left>
<menu_left>
<id>История</id>
<title>История</title>
<url>/info/hostory.jsp</url>
</menu_left>
</menu_up>
</menu>
</navigation>

теперь стали выбираться все записи в структуре <menu_left> , только конкретного <menu_up>
Что еще интерсно, что в инструментраии XMLPSY все работает. (там в нем можно трансформацию делать).: выбираешь XSL , для него выбираешь XML-файл, задаешь параметры для трасформации. и все работает. а вот в JBuildere почему то выводит все <menu_left> что есть в XML-документе.
Ы чем может буть проблема?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.