Matt RaibleMatt Raible is a Web Developer and Java Champion. Connect with him on LinkedIn.

The Angular Mini-Book The Angular Mini-Book is a guide to getting started with Angular. You'll learn how to develop a bare-bones application, test it, and deploy it. Then you'll move on to adding Bootstrap, Angular Material, continuous integration, and authentication.

Spring Boot is a popular framework for building REST APIs. You'll learn how to integrate Angular with Spring Boot and use security best practices like HTTPS and a content security policy.

For book updates, follow @angular_book on Twitter.

The JHipster Mini-Book The JHipster Mini-Book is a guide to getting started with hip technologies today: Angular, Bootstrap, and Spring Boot. All of these frameworks are wrapped up in an easy-to-use project called JHipster.

This book shows you how to build an app with JHipster, and guides you through the plethora of tools, techniques and options you can use. Furthermore, it explains the UI and API building blocks so you understand the underpinnings of your great application.

For book updates, follow @jhipster-book on Twitter.

10+ YEARS


Over 10 years ago, I wrote my first blog post. Since then, I've authored books, had kids, traveled the world, found Trish and blogged about it all.

[Display Tag] Now we're talking...

We're starting to get some real activity over on the display tag library project. I have to admit, I've done nothing - which is why it's even cooler that other folks are. Mathias joined the team and went on a rampage squashing bugs and formatting code. Then along came a guy named Fabrizio (no blog) who re-wrote the whole thing ~ demo. Even better - it's XHTML and CSS compliant.

There's even an editable table prototype being looked at. John York (no blog) has also done a lot in re-writing the library, and has his own version that I'm hoping to post soon. Nice work gents!

Posted in Java at Jun 17 2003, 03:16:20 PM MDT 11 Comments
Comments:

""display" is a program which will repeatedly execute a command and display the output through curses"

...This is what you meant to link to, right?

Posted by Paul Rivers on June 17, 2003 at 07:43 PM MDT #

Doh - wrong project, fixed now - thanks!

Posted by Matt Raible on June 17, 2003 at 08:29 PM MDT #

When I delete all the records in the editable table demo and hit refresh page I am getting this exception. HTTP Status 500 - Internal Server Error -------------------------------------------------------------------------------- type Exception report message Internal Server Error description The server encountered an internal error (Internal Server Error) that prevented it from fulfilling this request. exception org.apache.jasper.JasperException: Index: 0, Size: 0 at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:254) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2415) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.ajp.tomcat4.Ajp13Processor.process(Ajp13Processor.java:466) at org.apache.ajp.tomcat4.Ajp13Processor.run(Ajp13Processor.java:585) at java.lang.Thread.run(Thread.java:536) root cause java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 at java.util.ArrayList.RangeCheck(ArrayList.java:508) at java.util.ArrayList.get(ArrayList.java:320) at org.apache.jsp.index_jsp._jspService(index_jsp.java:103) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:137) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:210) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2415) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.ajp.tomcat4.Ajp13Processor.process(Ajp13Processor.java:466) at org.apache.ajp.tomcat4.Ajp13Processor.run(Ajp13Processor.java:585) at java.lang.Thread.run(Thread.java:536)

Posted by Ramesh M on June 17, 2003 at 09:38 PM MDT #

This is a simple bug in demo (index.jsp) page. If you change the following line from

} else if (commit.equalsIgnoreCase("Delete")) {

to

} else if (commit.equalsIgnoreCase("Delete")  && test.size() > 0) {

the above mentioned bug will be resolved. The JSP code (the scriplet at the top of index.jsp) is there for the demo purposes only. A seasoned developer would put such logic in a controller/model class and handle exceptions gracefully :-)

Tolga

Posted by Tolga on June 17, 2003 at 11:08 PM MDT #

Hey, that's nice! I've been reading your weblog for quite a while now, and I never realized that you were involved in the <display> tag library! We're using it very often in our (Struts based) webapplications, and it saves us (me) many, many hours of work.

Posted by Guus on June 18, 2003 at 03:22 AM MDT #

Source code for display-edit?

Posted by Vineet Bhatia on June 18, 2003 at 11:33 AM MDT #

The patch is currently in the queue at SF: http://tinyurl.com/en1z. You should be able to get the source code from this patch. If not, you might try contacting the author.

Posted by Matt Raible on June 18, 2003 at 11:51 AM MDT #

Your demo looks great, but I couldn't manage to run the patched version from sourceforge. I used Tomcat 4.1.24 and always get org.apache.jasper.JasperException: Unresolved compilation problems: The import org.apache.commons cannot be resolved PropertyUtils cannot be resolved PropertyUtils cannot be resolved

Posted by Michael Baedorf on June 24, 2003 at 02:30 AM MDT #

I've made both the display09.war and display-edit.war files available for download. Also, John York's example is at displaytag.org. Please send any questions on these tags to [email protected].

Posted by Matt Raible on June 24, 2003 at 04:39 AM MDT #

I get the same errors when trying to deploy - The import org.apache.commons cannot be resolved PropertyUtils cannot be resolved PropertyUtils cannot be resolved?

Posted by Jason Meredith on June 24, 2003 at 04:41 AM MDT #

Make sure that commons-beanutils is in your class path (i.e. under WEB-INF/lib directory.

See http://sourceforge.net/forum/message.php?msg_id=2063408 for more details

Posted by Tolga on June 25, 2003 at 12:42 PM MDT #

Post a Comment:
Comments are closed for this entry.