2014-12-01 3 views
1

У меня есть index.jsp, который содержит header.jspf, основное содержание и нижний колонтитул jspf. Я использую s include для включения верхнего и нижнего колонтитула jspf.Struts 2 s: включить тег, не работающий для заголовка jspf file

В моем заголовке jspf содержатся метки surl с значениями парама в нем. Я включил в него s tagslib.

В моем index.jsp/header.jspf есть объявление taglib.

<%@taglib prefix="s" uri="/struts-tags"%> 

Моего файл действия заголовка выглядит, как показано ниже,

public class Header extends ActionSupport { 

    public Header() { 
    } 

    @Override 
    public String execute() throws Exception { 
     return SUCCESS ; 
    } 

} 

моя распорка XML декларация, как показано ниже

<action name="Header" class="org.mypackage.mypackagename.Header" method="execute" > 
      <result name="SUCCESS">/WEB-INF/views/header/header.jspf</result> 
      <result name="error">/WEB-INF/views/error-page.jsp</result> 
     </action> 

В индексной JSP, я м в том числе JSPF как,

<s:include value="/WEB-INF/views/header/header.jspf"/> 

но для некоторых реасов он никогда не работает, он показывает исходный код/​​сломанный html в разделе заголовка. У меня также есть struts 2 html-теги в index.jsp, который, кажется, работает отлично.

Те же самые настроенные работы для дочерних страниц, которые не приветствуются.

Должен ли я использовать интерфейс подготовки для включения заголовка jspf. Мой нижний колонтитул jspf не содержит тегов распорок, поэтому, похоже, он работает нормально.

Я не могу видеть, что происходит здесь, поэтому нужны другие мысли.

Индекс jsp объявлен как страница welcomme в web xml.

+0

не вызывать точную страницу, а скорее имя действия (например, «Заголовок»). – user23123412

+0

Спасибо, я хочу проверить и вернуться. –

+0

Измените свои фрагменты на простой jsp, и он должен работать. –

ответ

1

Если Head просто JSP фрагмент, и ваша реальная, полная страница index.jsp, то вы должны карты что страницы к действию, а не сам фрагмент:

index.jsp

<!DOCTYPE html> 
<html> 
    <head> 
     <s:include value="/WEB-INF/views/header/header.jspf"/> 
    </head> 
    <body> 
     <h2> This is Index.jsp </h2> 

     <s:include value="/WEB-INF/views/header/footer.jspf"/> 
    </body> 
</html> 

Struts.xml

<action name="Login" class="org.mypackage.mypackagename.Login" method="execute"> 
    <result name="success">/WEB-INF/views/login.jsp</result> 
    <result name="error">/WEB-INF/views/error-page.jsp</result> 
</action> 

Обратите внимание, что "SUCCESS" неверно: он должен быть "success", или Action.SUCCESS (постоянный, также в ActionSupport, который отображается на "success").

+0

Спасибо Андреа, позвольте мне проверить это и вернуться к вам. –

+0

Извините, но я не получил это решение Andrea.Can вы снова объясните, пожалуйста. –

+0

@Kiran Не используйте фрагмент, который вы используете: include 'как результат действия. –

1

Используйте либо sitemesh, либо плитки для оформления страницы, например, верхний и нижний колонтитулы и т. Д. Sitemesh - тот, который я рекомендую. Его ничего не делать с struts2, не нужно создавать команды struts2 для верхнего и нижнего колонтитулов для достижения этого.

Вы можете искать в сети, например, реализацию sitemesh + struts2.

Если вы не хотите проверять sitemesh или любую другую структуру оформления, лучше всего создайте jsp или html верхнего и нижнего колонтитула и включите (jsp: inlcude tag) его в свой index.jsp или который когда-либо jsp вы хотите показать Верхний и нижний колонтитулы.

+0

Спасибо Nick.Позвольте мне изучить эти варианты. –