Hi All
I'm trying out with a new approach of validating the form
submission
using
a tag library.I went through the code base and found out that
appfuse.tld is
the centralized custom tag library which has defined some tag
libraries
such as FormatDate in it.So Far all these validations are
limited to the
view but not involving the form submission process. I wonder
how we can
write a custom lag library which can use in the form validation
in the
submition level.When I debuged the Formatdate tag library class
when
the
form is load .It calls only when the page is load but not at
time after
we
submit it.I wonder a approach of writing tag library/reference
API to
handle
the tag libraries after submitting the form.Any idea will be
greatly
appreciated.
Thanks
Kanchana
Kanchana wrote:
Hi All
I'm hitting my head against to the wall to do a filed length
validation
using a custom tag library in appfuse 2 .I saw many of the default
tld
are defined in the WEB-INF/appfuse.tld and those are simulated
in view
jsp
using taglib.jsp.So accordingly i also tried adding a new tag lib
class in
the web/src/java/taglib and have the tag defined in the
appfuse.tld.i
packaged the project and deployed assuming the rest of the
configurations
are done automatically and I called the tag lib in the jsp using
followings
<%@ include file="/common/taglibs.jsp"%> and ad follows
TravelLocation is a model classes which as a travelLocationId
and name
as
properties and my tag lib name is nullValuesTag which i defined in
the
appfuse.tld.But unfortunately i don't see the validation is
happening
and
I don't see the out put.I did the validation for the length of the
travel
location name property which defined as 20 characters in the DB.Can
any
one please help me to figure out how to write custom validation in
appfuse
whether my approach is correct.
FYI: in the taglib.jsp i have pass the key values of
nullValuesTag.length
to applicationRescources.properties files.I'm not sure how this
properties
file is read at run time and i hoped to see the message when the
validation is correctly done
Thanks and regards
Kanchana
code piece from the jsp to call the tag lib
----------------------------------------------
<spring:bind path="travelLocation.travelLocationId">
<input type="hidden" name="id" value="<c:out
value="${status.value}"/>"/>
</spring:bind>
<div class="content_table">
<p>
<div class="form_table_column1" >
<appfuse:label styleClass="desc"
key="travlLocation.name"/>
</div>
<div class="form_table_column2">
<spring:bind path="travelLocation.name">
<appfuse:nullValuesTag value="<%=request.getParameter("name")%>"
key="">
</appfuse:nullValuesTag>
<input class="TextField" type="text" name="name" id="name"
value="<c:out value="${status.value}"/>" />
</spring:bind>
</div>
</p>
Appfuse.tld code piece.
--------------------------------------------------------------------
--------------
<tag>
<name>nullValuesTag</name>
<tagclass>lk.mazarin.lgs.webapp.taglib.NullValuesTag</tagclass>
<bodycontent>JSP</bodycontent>
<info>tests zip code</info>
<attribute>
<name>value</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
<attribute>
<name>length</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
=======================================
NullValuesTag.java
package lk.mazarin.lgs.webapp.taglib;
import java.io.IOException;
import java.util.Date;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.jsp.JspException;
import lk.mazarin.lgs.util.DateUtil;
import org.springframework.web.servlet.support.RequestContext;
/**
* <p>This class is designed to render a formatted date tag in the
format
* the user's locale has speficied.</p>
*
* <p>It is designed to be used as follows:
* <pre><tag:date value="comman.datefield" /></pre>
* </p>
*
* @jsp.tag name="date" bodycontent="empty"
*/
public class NullValuesTag extends TemplateTag {
private String value;
private int length;
public NullValuesTag() {
value = null;
length = 1;
}
public int doStartTag() throws JspException {
if (value == null)
return 1; //check if we have zip code
if (value.equals(null))
return 1; //check if value is not null
if (value.length()> 20) {
//has to be an integer! short case of zip
code
xxxxx
try {
Integer.parseInt(value);
return 0;
} catch (NumberFormatException e) {
return 1;
}
}
/*else if (value.length() == 10) {
// long case on Zip code xxxxx-xxxx
String part1 = value.substring(0, 5);
String dash = value.substring(5, 6);
String part2 = value.substring(6);
if (!dash.equals("-"))
return 1;
try {
Integer.parseInt(part1);
Integer.parseInt(part2);
return 0;
} catch (NumberFormatException e) {
return 1;
}
}*/
return 1;
}
public int getLength() {
return length;
}
public String getValue() {
return value;
}
public void release() {
value = null;
length = 1;
}
public void setLength(int i) {
length = i;
}
public void setValue(String s) {
value = s;
}
}
--
View this message in context:
http://www.nabble.com/Writing-custom-tag-libraries-in-appfuse-2-
tp15872546s2369p16022292.html
Sent from the AppFuse - User mailing list archive at Nabble.com.
--------------------------------------------------------------------
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]