Setting Properties for Groups of JSP Pages
It is possible to specify certain properties for a group of JSP pages:
- Expression language evaluation
- Treatment of scripting elements (see Disabling Scripting)
- Page encoding
- Automatic prelude and coda includes
A JSP property group is defined by naming the group and specifying one or more URL patterns; all the properties in the group apply to the resources that match any of the URL patterns. If a resource matches URL patterns in more than one group, the pattern that is most specific applies. To define a property group in a deployment descriptor using NetBeans 5.5, follow these steps:
Instead of performing the preceding steps, you can define a JSP property group by editing the XML by hand using NetBeans 5.5 by doing the following:
- Perform steps 1 through 3 in the preceding set of steps.
- Click XML at the top of the editor pane.
- Include a
jsp-config
element if the deployment descriptor doesn't already have one.- Add a
jsp-property-group
element inside thejsp-config
element.- Add a
display-name
element inside thejsp-property-group
element and give it a name.- Add a
url-pattern
element inside thejsp-property-group
element and give it a URL pattern (a regular expression, such as*.jsp
).The following sections discuss the properties and explain how they are interpreted for various combinations of group properties, individual page directives, and web application deployment descriptor versions.
Deactivating EL Expression Evaluation
Each JSP page has a default mode for EL expression evaluation. The default value varies depending on the version of the web application deployment descriptor. The default mode for JSP pages delivered using a Servlet 2.3 or earlier descriptor is to ignore EL expressions; this provides backward compatibility. The default mode for JSP pages delivered with a Servlet 2.4 descriptor is to evaluate EL expressions; this automatically provides the default that most applications want. For tag files (see Encapsulating Reusable Content Using Tag Files), the default is to always evaluate expressions.
You can override the default mode through the
isELIgnored
attribute of thepage
directive in JSP pages and through theisELIgnored
attribute of thetag
directive in tag files. You can also explicitly change the default mode by doing one of the following:Table 4-8 summarizes the EL evaluation settings for JSP pages.
Table 4-9 summarizes the EL evaluation settings for tag files.
Table 4-9 EL Evaluation Settings for Tag Files Tag Directive isELIgnored EL Encountered Unspecified Evaluatedfalse
Evaluatedtrue
Ignored
Declaring Page Encodings
You set the page encoding of a group of JSP pages using the JSP property group configuration in the deployment descriptor by doing one of the following:
A translation-time error results if you define the page encoding of a JSP page with one value in the JSP configuration element and then give it a different value in a
pageEncoding
directive.Defining Implicit Includes
You can implicitly include preludes and codas for a group of JSP pages by adding items to the Include Preludes and Codas lists. Their values are context-relative paths that must correspond to elements in the web application. When the elements are present, the given paths are automatically included (as in an
include
directive) at the beginning and end, respectively, of each JSP page in the property group. When there is more than one include or coda element in a group, they are included in the order they appear. When more than one JSP property group applies to a JSP page, the corresponding elements will be processed in the same order as they appear in the JSP configuration section.For example, the Duke's Bookstore application uses the files
/template/prelude.jspf
and/template/coda.jspf
to include the banner and other boilerplate in each screen. To add these files to the Duke's Bookstore property group using the deployment descriptor, follow these steps:
- In NetBeans 5.5, expand your project's folder in the Projects pane.
- Expand the Web Pages node and then the WEB-INF node.
- Double-click
web.xml
to open it in the editor pane.- Click Pages at the top of the editor pane.
- Add a new JSP property group if you haven't already (see Setting Properties for Groups of JSP Pages) and give it the name
bookstore2
and the URL pattern*.jsp
.- Expand the JSP Property Group node.
- Click the Browse button to the right of the Include Preludes field to locate the file that you want to include at the beginning of all pages matching the pattern in the URL pattern field. In this case, you want the
/template/prelude.jspf
file.- Click the Browse button to the right of the Include Codas field to locate the file that you want to include at the end of all pages matching the URL pattern. In this case, you want the
/template/coda.jspf
file.Instead of performing the preceding steps, you can add preludes and codas by editing the XML by hand using NetBeans 5.5 by doing the following:
- Perform steps 1 through 3 in the preceding set of steps.
- Click XML at the top of the editor pane.
- Add a new JSP property group (see Setting Properties for Groups of JSP Pages) and give it the name
bookstore2
and URL pattern*.jsp
.- Add an
include-prelude
element to thejsp-property-group
element and give it the name of the file to include, in this case,/template/prelude.jspf
.- Add an
include-coda
element to thejsp-property-group
element and give it the name of the file to include, in this case,/template/coda.jspf
.Preludes and codas can put the included code only at the beginning and end of each file. For a more flexible approach to building pages out of content chunks, see A Template Tag Library.
Eliminating Extra White Space
White space included in the template text of JSP pages is preserved by default. This can have undesirable effects. For example, a carriage return added after a
taglib
directive would be added to the response output as an extra line.If you want to eliminate the extra white space from the page, you can add a
trim-directive-whitespaces
element to ajsp-property-group
element in the deployment descriptor and set it totrue
.To set the
trim-directive-whitespaces
element to true using NetBeans 5.5, do the following:
- Open the deployment descriptor fiile in the editor.
- Click the Pages button at the top of the editor.
- Select a JSP property group.
- Select the Trim Directive Whitespaces checkbox.
- Save the deployment descriptor.
Alternatively, a page author can set the value of the
trimDirectiveWhitespaces
attribute of thepage
directive to true or false. This will override the value specified in the deployment descriptor.Custom tag authors can eliminate white space from the output generated by a tag file by setting the
trimDirectiveWhiteSpace
attribute of thetag
directive to true.