Display tag is 1 of the best gratis opened upward rootage libraries for showing information inwards tabular format inwards a J2EE application using jsp, struts or spring. it is shipped every bit tag library thus y'all tin exactly include this inwards your jsp in addition to add together corresponding jolt in addition to at that spot dependency inwards class-path in addition to y'all are ready to utilisation it. Display tag is my favorite solution for displaying whatsoever tabular information because of its inherent capability on paging in addition to sorting. It provides keen back upward for pagination on its ain but it too allows y'all to implement your ain pagination solution. On Sorting front end y'all tin variety your information based on whatsoever column, implement default sorting etc.
There is thus much resources available on using display tag including examples, demos, in addition to guides. In this article, nosotros volition consider some of import points to authorities annotation piece using display tag inwards jsp. Though this library is really stable in addition to rich inwards functionality yet at that spot are some subtle things which thing in addition to if y'all don't know y'all could potentially waste matter hours to create those things. These are the points I flora out piece I was using displaytag inwards my projection in addition to I accept listed those downward hither for benefits of all.
displaytag examples
I accept outlined all the examples based upon describe of piece of work I had to perform in addition to due to those tasks, I discovered in addition to larn myself familiar amongst display tag. It’s my personal sentiment that task-based approach industrial plant ameliorate inwards price of agreement something than characteristic based. It’s exactly piece of cake for the hear to empathise the occupation showtime in addition to thus a solution.
1) Provide UID piece using 2 tables inwards 1 page.
In many scenarios, nosotros demand to demo 2 dissever tables inwards 1 jsp page. We tin produce this past times using 2 tags easily but the pick out handgrip of is that sorting volition non piece of work every bit expected. When y'all variety 1 table, the minute tabular array volition automatically variety or vice-versa. To brand 2 tables independent of each other for functionality similar exporting in addition to sorting y'all demand to render "uid" attribute to tabular array tag every bit shown below. I accidentally flora this when I run into sorting number on display tag.
<displaytag:table name="listofStocks" id="current_row" export="true" uid="1">
<displaytag:table name="listofStockExchanges" id="current_row" export="true" uid="2">
just brand certain "uid" should live on dissimilar for each table.
<displaytag:table name="listofStockExchanges" id="current_row" export="true" uid="2">
just brand certain "uid" should live on dissimilar for each table.
2) Displaytag paging asking starts amongst "d-"
There was a põrnikas inwards 1 of our jsp which shows information using displatag, amongst each paging asking it was reloading information which was making it slow. Then nosotros idea to filter out displaytag paging asking in addition to upon looking the designing of displaytag paging asking nosotros flora that it ever starts amongst "d-", thus past times using this information y'all tin filter out display tags paging request. Since nosotros were using jump it was fifty-fifty easier every bit shown inwards below
Example:
Map stockParamMap = WebUtils.getParametersStartingWith(request, "d-");
if(stockParamMap.size() !=0){
out.println("This asking is displaytag pagination request");
}
3) Getting reference to electrical flow row inwards display tag
Many times nosotros require reference of electrical flow row piece rendering display tag data into a jsp page. In our instance nosotros demand to larn something from currentRow in addition to thus larn Something from some other Map whose fundamental was value retrieved from electrical flow row, to implement this, of course, nosotros some how demand a reference of the electrical flow row inwards display tag. After looking online in addition to displaytag.org nosotros flora that past times using "id" attribute nosotros tin brand electrical flow row reference available inwards pageScope. Name of variable would live on the value of "id" attribute, this would live on much clear past times seeing below example:
<displaytag:table name="pennyStocks" id="current_penny_stock" export="true" uid="1">
<di:column title="10 examples of displaytag inwards JSP, Struts in addition to Spring" value="${pennyStockPrice[current_penny_stock.RIC]}" sortable="true" />
This means nosotros are displaying stock cost from pennyStockPrice Map whose fundamental was RIC(Reuters Information Code) of penny Stock. You consider cry of variable used to refer electrical flow row is "current_penny_stock"
4) Formatting appointment inwards displaytag inwards JSP
Formatting date in addition to numbers are extremely piece of cake inwards display tag, y'all exactly demand to specify a "format" attribute amongst <displaytag:column> tag in addition to value of this tag would live on appointment format every bit nosotros used inwards SimpleDateFormat inwards Java. In Below example, I am showing appointment inwards "yyyy-MM-dd" format.
<di:column title="10 examples of displaytag inwards JSP, Struts in addition to Spring" property="settlementDate" sortable="true" format="{0,date,yyyy-MM-dd}" />
You tin too implement your ain table decorator or column decorator but I flora this alternative piece of cake in addition to ready to use.
5) Sorting Columns inwards display tag
Again really piece of cake y'all exactly demand to specify sortable="true" amongst <displaytag:column> tag in addition to display tag volition brand that column sortable. Here is an instance of a sortable column inwards display tag.
<di:column title="10 examples of displaytag inwards JSP, Struts in addition to Spring" property="stockPrice" sortable="true" />
6) Making a column link in addition to passing its value every bit a asking parameter.
Some fourth dimension nosotros demand to brand a especial columns value every bit link may live on to demo some other laid of information related to that value. nosotros tin produce this easily inwards display tags past times using "href" attribute of <displaytag:column> tag, value of this attribute should live on path to target url.If y'all desire to move past times value every bit asking parameter y'all tin produce that past times using some other attribute called "paramId", which would move past times away cry of asking parameter.
Here is an instance of making a link in addition to passing the value every bit the request parameter inwards display tags.
<di:column property="stockSymbol" sortable="true" href="details.jsp" paramId="symbol"/>
Values on this column volition appear every bit link in addition to when user click on the link it volition append a asking parameter "symbol" e.g symbol=Sony
7) Default sorting in addition to ordering inwards displaytag
If y'all desire that your tabular array information is past times default sorted based upon a especial column when displayed thus y'all demand to defaine a column cry for default sorting in addition to an lodge e.g. ascending or descending. You tin accomplish this past times using attribute "defaultsort" in addition to "defaultorder" of <displaytag:table> tag every bit shown inwards below example.
<displaytag:table name="pennyStocks" id="current_penny_stock" export="true" defaultsort="1" defaultorder="descending" uid="1">
This volition display tabular array which would live on sorted on the showtime column inwards descending order.
8) Sorting whole listing information every bit compared to exclusively page information inwards display tag
This was the number nosotros flora 1 time nosotros done amongst our displaytag jsp. nosotros flora that whenever nosotros variety the tabular array past times clicking on whatsoever sortable column header it exclusively variety the information visible on that page, it was non sorting the whole listing provided to display tag I hateful information which was on other pages was left out. That was non the desirable activity for us. Upon looking around nosotros flora that display tag past times default variety exclusively electrical flow page information but y'all tin override this deportment past times providing a displaytag.properties file inwards classpath in addition to including below describe in
displaytag.properties:
sort.amount = list
9) Configuring displaytag past times using displaytag.properties
This was an of import slice of information which nosotros are non aware until nosotros hitting past times above-mentioned the issue. Later nosotros flora that nosotros tin utilisation displaytag.properties to customize dissimilar behaviors, appearence of displaytag. Another expert deportment nosotros discoved was showing empty tabular array if provided listing is zero or empty. You tin accomplish this past times adding describe "basic.empty.showtable = true". Here was how our properties file looks like
//displaytag.properties
sort.amount = list
basic.empty.showtable = true
basic.msg.empty_list=No results matched your criteria.
paging.banner.placement=top
10) Specifying pagesize for paging inwards a JSP
You tin specify how many rows y'all desire to demo inwards 1 page past times using "pagesize" attribute of <displaytag:table>. We prefer to utilisation it from configuration because this was dependent champaign to change.
Overall nosotros flora that displaytag was quite rich inwards functionality, piece of cake to utilisation in addition to highly configurable. Displaytag is too really extensible inwards price of customizing export or pagination functionality. Displaytag.org has some really expert examples in addition to alive demo addressing each of display tag functionality in addition to those are an first-class starting betoken every bit well. No thing whether y'all are using struts, jump or patently servlet based framework for tabular information displaytag is a expert choice.
Note: In <displaytag:table> displaytag is tag prefix I used inwards piece declaring tag library using <@taglib> inwards JSP.
Further Learning
Spring Framework 5: Beginner to Guru
10 enum examples inwards Java