2011-07-31 2 views
0

Я хочу включить компонент моего проекта, используя плагин struts2 tiles. Файл tiles.xml я написал так:Проблема в плагине struts2.

<tiles-definitions> 
<definition name="indexBaseLayout" template="/indexBaseLayout.jsp"> 
    <put-attribute name="title" value="" /> 
    <put-attribute name="topBar" value="/topbar.action" /> 
    <put-attribute name="catalog" value="" /> 
    <put-attribute name="searchForm" value="" /> 
    <put-attribute name="main" value="" /> 
    <put-attribute name="footer" value="" /> 
</definition> 
<definition name="regInput.tiles" extends="indexBaseLayout"> 
    <put-attribute name="title" value="注册" /> 
    <put-attribute name="main" value="/reg/input.action" /> 
</definition> 
<definition name="regSuccess.tiles" extends="indexBaseLayout"> 
    <put-attribute name="title" value="注册" /> 
    <put-attribute name="main" value="/reg_success.jsp" /> 
</definition> 
<definition name="index.tiles" extends="indexBaseLayout"> 
    <put-attribute name="title" value="主页" /> 
    <put-attribute name="main" value="/index.jsp" /> 
</definition> 

И часть struts.xml так:

<package name="main" extends="struts-default" namespace="/"> 
    <action name="topbar" class="topBarAction"> 
     <result name="success">/topbar.jsp</result> 
    </action> 
</package> 

Как вы видите, я ставлю некоторые URLs действия в значении put-attribute. Я думал, что они будут выполняться как действия расположений и отображать результат возвращенного результата. Но факт в том, что плагин плагина распознает «xxxx.action» как файл: java.io.FileNotFoundException: запрошенный ресурс (/bookstore/topbar.action) недоступен. Итак, есть ли какое-либо решение для вставки представления результата действия в макеты таблиц?

ответ

0

Насколько я знаю, вы не можете выполнить действие из определения плитки.

Если вы пытаетесь выполнить некоторую логику на этом jsp до рендеринга на всех других результатах плитки, другим решением может быть использование некоторых асинхронных вызовов jquery для действия struts с использованием json-плагина или чего-то подобного.

Я не уверен, что ваша конечная цель здесь, если вы можете описать, что вы снимаете, возможно, я могу помочь больше.

EDIT: дальнейшее определение с использованием условными в JSP

В вашем определении плитки вы бы ссылаться на JSP, как обычно:

<definition name="indexBaseLayout" template="/indexBaseLayout.jsp"> 
    <put-attribute name="title" value="" /> 
    <put-attribute name="topBar" value="/topbar.jsp" /> 
    <put-attribute name="catalog" value="" /> 
    <put-attribute name="searchForm" value="" /> 
    <put-attribute name="main" value="" /> 
    <put-attribute name="footer" value="" /> 
</definition> 

В JSP вы бы базировать, что оказывает на стойках тег условный:

<s:if test="%{#session.user != null && #session.user.Authenticated"}> 
    Welcome <s:property value="%{#session.user.name}" /> 
</s:if><s:else> 
    <%-- Login form goes here --%> 
</s:else> 

Это решение дает вам возможность проверить объект пользователя в сеансе, который является где я, вероятно, лично буду поддерживать объект информации о пользователе. Если пользовательский объект имеет значение null или логическая аутентификация является ложной, тогда будет отображаться форма журнала, в противном случае она покажет приветственное сообщение и, возможно, кнопку выхода из системы.

+0

На моей странице есть верхняя панель. Информация на панели зависит от того, вошел ли пользователь в систему. Если он еще не зашел в систему, появится ссылка для входа в систему, иначе будет отображаться ссылка на выход, а также строка «welcome» + userName. Я долго искал googled и нашел способ выполнить действие в плитке. Просто добавьте ЗАПРОС ВКЛЮЧЕН в web.xml внутренний struts2 фильтр-картографический тэг. Это работает, но я не знаю, почему. –

+0

Я бы предложил использовать стандартный jsp с некоторыми условными тегами расположений, в которых он тестировался против вашего пользовательского объекта для логического значения, возможно, isAuthenticated(). Я ответил на вопрос с вопросом о состоянии входа в систему: http://stackoverflow.com/questions/6906894/struts-2-session-management-and-dynamically-displaying-jsps/6935182#6935182 –

+0

См. Мои изменения для уточнения –

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