我的Struts版本是:Struts2.2.3.1。 把它自身带的例子都导入到了Eclipse中。
在其自带的例子Struts2-blank中,
Package.properties 文件中包含: requiredstring = ${getText(fieldName)} is required.
我的理解如下:
${getText(fieldName)}是一个OGNL表达式。getText是ActionSupport的方法。
问题一:
请问 fieldName是什么,怎么理解?可以向上追溯到哪里?为什么必须写成fieldName,不能写成Foo?
在example.xml文件中有如下配置:
<action name="Login_*" method="{1}" class="example.Login">
<result name="input">/example/Login.jsp</result>
<result type="redirectAction">Menu</result>
</action>
在login.jsp文件中的form定义如下:
<s:form action="Login">
<s:textfield key="username"/>
<s:password key="password" />
<s:submit/>
</s:form>
如果我填写的信息不完整,点击确定提交以后,这个form提交给了Login.action。
如果我填写的信息完整,则会转到Menu.action。
问题二:
请问,配置文件中分明配置的是Login_*,那么login.jsp文件form的目的地Login怎么能够匹配过去呢?分明有一个下划线不匹配啊?
另外,Login.java中,没有定义execute意外的方法,那么,配置文件中用通配符配置action,还有什么意义吗?如在本例中,jsp页面没有明确指定method,那么struts框架会自动调用execute方法吗?
在eclipse中,Login-validation.xml会出现
The file cannot be validated as the host "www.opensymphony.com" is currently unreachable.
这样的waring。
原因在于Login-validation.xml中有这样一句
<!DOCTYPE validators PUBLIC
"-//OpenSymphony Group//XWork Validator 1.0.2//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
问题三:
请问如何能够避免出现这样的提示信息?能用xwork-core-2.2.3.1.jar中的xwork-validator-1.0.2.dtd来替换掉吗?如果能,如何替换?