开发者

In JSP, what do the path and value attribute do within the input tag, and how does the form prefix affect them?

Just wanted a clear answer for a direct question -- google results have been all over the place or don't address the combos you'll see below.

I'm generally a JSP newbie and have been screwing around with the following code.

<form:input id="theId" path="path.copied.directly.fromSomewhereElse"
    cssClass="contentTextInput" cssStyle="width: 229px" />

When I put that i开发者_运维百科nto my JSP page and load my website, it works fine and looks as my cssClass defines it. Then I start messing with it because I want it to display a default value.

<form:input id="theId" path="path.copied.directly.fromSomewhereElse"
    value="blah" cssClass="contentTextInput" cssStyle="width: 229px" />

Suddenly, HTTP 500, an org.apache.jasper.JasperException! So I decide to remove the path altogether, while leaving in the value. This is just step 1 in something I know works because of prior experience. The code is now:

<form:input id="theId" value="someClass.valueIWantAsDefault" 
    cssClass="contentTextInput" cssStyle="width: 229px" />

That actually throws an exception, too -- but then I remove the form prefix and it works-- mostly. You see, the cssClass's effects are now gone; it looks like a regular, unaffected input textbox. Here's the code so far.

<input id="theId" value="someClass.valueIWantAsDefault" 
    cssClass="contentTextInput" cssStyle="width: 229px" />

What exactly do these attributes (and prefix) do that makes this mix-and-match work?


I'm guessing you're dealing with a jsp page that relies on a JSP custom tag library that's part of the Spring Framework. Here are the docs for the <form:input> tag. value is not a valid attribute for this custom tag as you can see in the docs link I provided above. When you remove the form:, you're turning the tag into a plain old HTML <input> tag which is why your error is going away at that point. It's also why your css stops working. cssClass is not the correct attribute for the HTML <input> tag. It's simply class. They called it cssClass in the jsp custom tag lib most likely to avoid a lower level collision with the Object.getClass() method (long story, just take my word for it).

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜