Ответ 1
Если вы используете JSF2 Facelets, вы можете просто создать свои формы с помощью обычного HTML и использовать атрибут jsfc
, чтобы указать соответствующий компонент JSF, который должен использоваться во время выполнения JSF. Например.
<form jsfc="h:form">
<label jsfc="h:outputLabel" for="input1" />
<input type="text" jsfc="h:inputText" id="input1" value="#{bean.input1}" required="true" />
<span jsfc="h:message" for="input1" />
<input type="submit" jsfc="h:commandButton" value="Submit" action="#{bean.submit}" />
</form>
Чтение Facelets <ui:xxx>
документация taglib также должно дать некоторые идеи. Например.
<span jsfc="ui:remove">
This is present during design time, but is removed during JSF runtime.
</span>
<div jsfc="ui:repeat" value="#{bean.items}" var="item">#{item}</div>
<table>
<tr jsfc="ui:repeat" value="#{bean.items}" var="item">
<td>#{item.id}</td>
<td>#{item.name}</td>
</tr>
</table>
И тот факт, что вы можете использовать <ui:composition>
, чтобы указать начало и конец композиции Facelet (например, файл include или файл тега). Любое содержимое снаружи будет игнорироваться во время выполнения, но вы все равно можете поместить некоторый HTML во время разработки, чтобы вы могли легко просмотреть полные проекты, в которые должен быть включен файл include или tag.
<!DOCTYPE html>
<html lang="en"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets"
>
<head>
...
</head>
<body>
...
<ui:composition>
Here you can design content of include file or
tag file as if it part of the whole design.
</ui:composition>
...
</body>
</html>
Все это позволяет вам просматривать проекты HTML/CSS без необходимости выполнения JSF.