Проблема, с которой я столкнулся сегодня, - это дело с HTML в включенном JSP с JSF. Итак, вот в чем проблема: я использую JSF 1.2 от IBM на RAD с помощью Websphere v6.1 У меня есть пользовательский компонент (из уровня компании) для использования вкладок. А для того, чтобы иметь более чистый код, я просто хочу, чтобы отделить JSF код каждой вкладки в отделенной JSP, таким образом, main.jsp:Смешать HTML и JSF в подвале JSF
<customTag:tabComponent>
<jsp:include page="/jsp/workflow/tab1.jsp"></jsp:include>
<div align="right">
<customTag:switchToTab title="Next" tabValue="2"></customTag:switchToTab>
</div>
</customTag:tabComponent>
И мой tab1.jsp:
<!-- Taglibs declared here -->
<f:verbatim>
<div id="myDivId">
<fieldset>
<legend>myLegend</legend>
<h:outputText value="#{myBean.someContent}"></h:outputText>
<!-- HERE are a lot of JSF components, selectItems, inputText... -->
</fieldset>
</div>
</f:verbatim>
Итак, компоненты JSF обрабатываются, но HTML, кажется, обрабатывается после и появляется после, за пределами HTML, созданного JSF. Что-то вроде
<table>
<!-- generated content -->
</table>
<div id="myDivId">
...
хотя таблица должна находиться внутри div. Я попытался использовать теги <f:verbatim>
разными способами, и единственным решением было окружить <div>
и </div>
стенографическими открывающими и закрывающими тегами, что является грязным и заставляет Websphere сходить с ума.
Google не нашел ничего подходящего, так что вы, ребята, уже столкнулись с той же проблемой? Можно ли найти чистое решение или мне нужно включить весь мой код в тот же JSP? Заранее спасибо.
Еще раз спасибо за ваше время. Может быть, это глупо, но как я могу узнать версию JSF? Я думал, что это 1,2, но вы должны быть правы, потому что компания отправила всю среду, и я ничего не изменил, так что я все-таки JSF 1.1. О вашем решении: я уже пробовал это, и сделал это снова после вашего ответа, и он работает в первый раз, когда я запускаю Websphere, но после «перепубликации» у меня получилось «republish failed» (не уверен в точном переводе, французский RAD окружающая среда), потому что
Если вы использовали JSF 1.2, вы бы увидели это в журнале запуска (чего не было в версии 1.1). Кроме того, вы могли бы использовать классы только для 1,2, такие как 'ValueExpression' или только 1.2-методы, такие как' Application # valuExpressionGet() 'или теги только для 1,2, такие как' f: setPropertyActionListener' и 'h: panelGroup layout = "block" '. Что касается ошибки «republish failed» после публикации, я бы заподозрил грязный путь класса. Убедитесь, что в библиотеках не существует конфликтов версий во всем пути к классам (к сожалению, это связано с * множеством * путей в Websphere, я могу сказать по опыту). – BalusC
Я не нашел ничего странного в пути к классам, но решение, которое я нашел, - «разрешить публикацию, когда приложение содержит ошибки» в RAD, поэтому оно не жалуется на «метки перехода» во время публикации. Результат все еще правильный, так что это нормально (я опубликую здесь позже, если найду что-то еще, для других). Благодарю. – Baztoune