フォームを送信するためにFirstNameが必須フィールドであるフォームを作成しようとしています(このエラーの何が問題になっているのかがわかったら、他の検証を追加します)。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xml:lang="en" 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">
<h:head>
<title>Register as a Voter</title>
</h:head>
<h:body>
Please fill out all information below to register as a voter.
<br/>
<h:form id = "form" >
<h:outputLabel value = "First Name:"/>
<h:inputText value = "#{voterBean.firstName}">
<h:validateRequired/>
</h:inputText>
<br/>
<h:outputLabel value = "Last Name:"/>
<h:inputText value = "#{voterBean.lastName}"/>
<br/>
<h:outputLabel value = "Address:"/>
<h:inputText value = "#{voterBean.address}"/>
<br/>
<h:outputLabel value = "City:"/>
<h:inputText value = "#{voterBean.city}"/>
<br/>
<h:outputLabel value = "State"/>
<h:inputText value = "#{voterBean.state}"/>
<br/>
<h:outputLabel value = "Zip:"/>
<h:inputText value = "#{voterBean.zip}"/>
<br/>
<h:outputLabel value = "Phone:"/>
<h:inputText value = "#{voterBean.phone}"/>
<br/>
<h:outputLabel value = "Affiliation:"/> <br/>
<h:selectOneRadio value="#{voterBean.affil}"><br/>
<f:selectItem itemValue="Democrat" itemLabel="Democrat" />
<f:selectItem itemValue="Green Party" itemLabel="Green Party" />
<f:selectItem itemValue="Liberterian" itemLabel="Liberterian" />
<f:selectItem itemValue="Republican" itemLabel="Republican" />
<f:selectItem itemValue="Unafilliated" itemLabel="Unafilliated" />
</h:selectOneRadio>
<br/>
<h:commandButton id = "Submit" value = "Submit" action = "Results"/>
</h:form>
</h:body>
</html>
ただし、このコードをデプロイしてこのxhtmlファイルにアクセスすると、次のようなエラーが発生します。
"/Register.xhtml @ 24,23タグライブラリは名前空間をサポートします:http://java.sun.com/jsf/html、しかし名前にタグが定義されていません:validateRequired"
私はstackoverflowでこのエラーの解決策を読んでみましたが、何が問題なのか理解できません。
私はこれを正しくやっていると信じています...
「validateRequired」のタグは、htmlではなくコアの名前空間に関連付けられています。このプレフィックスをこれに変更<f:validateRequired />
すると、問題が解決するはずです。
または、required="true"
入力コンポーネントタグ内を利用することもできます。それらの両方が同じタスクを実行します。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加