XML Files: forms.xml


Alle Forms müssen in einer XML Datei definiert werden. Die Definitionen werden unter /WEB-INF/XML/form...xml gespeichert. Jedes neue Form muss zuerst im File knownforms.xml definiert werden. Es werden nur Forms geladen, die in diese beiden Definitionen haben. Die Beans zu den einzelnen Forms können danach automatisch generiert werden siehe dazu: beans generieren.

Die wichtigsten Attribute des tags form (<form name="form-110"...):
<page>JSP aus der das Form aufgerufen wurde
<success-form>jsp Page die im Erfolgsfall angezeigt wird
<error-page>jsp Page die im Fehlerfall angezeigt wird
<form-action>action die im Form definiert wurde z.B. <form name="registration" method="post" action="loginNewAutor.do>"


sub tags:
<action-mapping >id: Name der Bean, wie sie im Form verwendeten wird z.B. loginBean
 class: Java Bean z.B. com.trinity4.weblog.beans.LoginBean
<pre-action>durchzuführende Action
<process-action>durchzuführende Action
<post-action>durchzuführende Action
<field>alle im Form verwendeten Fields müssen mit einem eigenen tag definiert werden

Beispiel Registrations Form für einen neuen Autor (/WEB-INF/xml/form-110.xml):

<?xml version="1.0" encoding="UTF-8"?>
<!--<!DOCTYPE form SYSTEM "C:\aaaweblog\samples\XMLund XSD\forms.dtd">-->
<?xml-stylesheet type="text/xsl" href="forms.xsl"?>
Definition des Form tags:
<form name="form-110"
  description="Registrations Form für neue Autoren"
  page="/pages/hsz-weblog/registration.jsp"
  success-form="/pages/hsz-weblog/private_autor.jsp"
  form-action="loginNewAutor.do"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="forms.xsd">
Hier wird die mit dem Form zu verknüpfende Bean definiert:
    <action-mapping id="loginBean" class="com.trinity4.weblog.beans.LoginBean"></action-mapping>
hier folgt die Definition der durchzuführenden Actions:
    <process-action name="com.trinity4.weblog.action.InsertAutor">
		<process-dbquery></process-dbquery>
		<process-error-message>error-new-Autor-process</process-error-message>
	</process-action>
Jedes im Form verwendete Field muss einzeln definiert werden:
	<field name="user" type="com.trinity4.form.String" required="true">
		<field-value/>
		<field-required-message>is-required</field-required-message>
		<field-required-error-message>please-fill-this</field-required-error-message>
		<field-validator>com.trinity4.validator.UserValidator</field-validator>
		<field-formatter>com.trinity4.form.formatter.String</field-formatter>
	</field>
	<field name="userpwd" type="com.trinity4.form.String" required="true">
 		<field-value/>
		<field-required-message>is-required</field-required-message>
		<field-required-error-message>please-fill-this</field-required-error-message>
		<field-validator>com.trinity4.validator.PasswordValidator</field-validator>
		<field-formatter/>
	</field>
	<field name="userpwdagain" type="com.trinity4.form.String" required="true">
 		<field-value/>
		<field-required-message>is-required</field-required-message>
		<field-required-error-message>please-fill-this</field-required-error-message>
		<field-validator>com.trinity4.validator.PasswordValidator</field-validator>
		<field-formatter/>
	</field>
	<field name="email" type="com.trinity4.form.String" required="true">
		<field-required-message>is-required</field-required-message>
		<field-required-error-message>please-fill-this</field-required-error-message>
		<field-validator>com.trinity4.validator.EmailValidator</field-validator>
		<field-formatter>com.trinity4.formatter.String</field-formatter>
	</field>
	<field name="firstName" type="com.trinity4.form.String"  required="false">
		<field-validator>com.trinity4.validator.Required</field-validator>
		<field-formatter>com.trinity4.formatter.String</field-formatter>
	</field>
	<field name="lastName" type="com.trinity4.form.String"  required="false">
		<field-validator>com.trinity4.validator.Required</field-validator>
		<field-formatter>com.trinity4.formatter.String</field-formatter>
	</field>
	<field name="blogTitle" type="com.trinity4.form.String"  required="true">
		<field-validator>com.trinity4.validator.Required</field-validator>
		<field-formatter>com.trinity4.formatter.String</field-formatter>
	</field>
	<field name="categoryId" type="com.trinity4.form.Long"  required="true">
	    <field-required-message>is-required</field-required-message>
		<field-required-error-message>please-fill-this</field-required-error-message>
		<field-validator>com.trinity4.validator.SelectionValidator</field-validator>
		<field-formatter>com.trinity4.formatter.String</field-formatter>
	</field>
	<field name="locale" type="com.trinity4.form.String"  required="false">
		<field-validator>com.trinity4.validator.Required</field-validator>
		<field-formatter>com.trinity4.formatter.String</field-formatter>
	</field>
</form>