2012-06-25 4 views
1

У меня есть jsp с представлением на основе html: form action.Struts html: form с различными действиями

<html:form action="/nextPath"> 

Я хочу, чтобы установить действие, основанное на переменной, или текущий путь .. и т.д.

<d:isActionPath path="/path1" > 
    <html:form action="/nextPath1"> 
</d:isActionPath> 

<d:isActionPath path="/path2" > 
    <html:form action="/nextPath2"> 
</d:isActionPath> 

Это не работает. Но это, по сути, хочу, я хочу сделать.

Любые предложения? Очень новичок в расположении.

ответ

1
<d:isActionPath path="/path1" > 
    <c:set var="theAction" value="/nextPath1"/> 
</d:isActionPath> 

<d:isActionPath path="/path2" > 
    <c:set var="theAction" value="/nextPath2"/> 
</d:isActionPath> 

<html:form action="${theAction}"> 
    ... 
</html:form> 

JSP-теги должны быть сбалансированы правильно, как в XML-документе. Вы не можете открыть тег d:isActionPath, откройте тег html:form и закройте тег d:isActionPath, не закрыв тег html:form.

+0

Спасибо! я на самом деле сделал это с помощью scriplet и java, что тоже самое! – kosmos

1

У меня была аналогичная проблема:

Невозможно получить отображение для действий/$ {theAction}

Я заменил $ {theAction} на <% = theAction%> и он работал для меня (struts 1.2.9, J2SE-1.5 и jboss-4.2.3.GA).

Таким образом, вы можете попробовать что-то вроде:

<% String theAction = "/nextPath"; %> 
<d:isActionPath path="/path1" > 
    <% theAction = "/nextPath1"; %> 
</d:isActionPath> 

<d:isActionPath path="/path2" > 
    <% theAction = "/nextPath2"; %> 
</d:isActionPath> 

<html:form action="<%= theAction %>"> 
    ... 
</html:form> 

Edit: я путаю на самом деле, почему он работает с <% =%> нотации? Это потому, что html тэг не интерпретирован правильно?

Смежные вопросы