如何在控制器上访问Struts ActionForm中的标签值

时间:2017-01-21 11:12:04

标签: java jsp struts

我正在使用struts MVC。我想通过struts ActionForm访问控制器中的标签值。在控制器中,我可以通过ActionForm访问文本字段值的值,因为它具有' name' field.But in label,only' id'是的。所以请帮我通过ActionForm访问控制器的标签值。

JSP

<html:form action="action.do">
<label  id="labelvalue">label_Value</label>
</html:form>

控制器

public ActionForward defaultMethod(ActionMapping mapping, ActionForm form,
        HttpServletRequest request, HttpServletResponse response)
        throws Exception {
try{
    StrutsActionForm actform;       
    actform= (StrutsActionForm) form;
    String labelvalue=actform.getLabelValue();//now it shows null.I want to get the value from the label field
    return "success";
  }catch(Exception e){
   return null;
}
}

StrutsActionForm

publi class StrutsActionForm  extends ActionForm{
private String labelvalue;
public String getLabelValue() {
 return labelvalue;
}
public void setLabelValue(String labelvalue) {
this.labelvalue= labelvalue;
}
}

的struts-config.xml

<form-beans>
<form-bean name="strutsActionForm" type="com.StrutsActionForm"></form-bean>
</form-beans>
<action-mappings>
<action path="/action" name="strutsActionForm" input="/index.jsp" 
        type="com.Controller">
        <forward name="success" path="/successWindow" />
</action> 
</action-mappings>

2 个答案:

答案 0 :(得分:2)

您可以使用此代码访问标签标签中的文字

&#13;
&#13;
<html>
	<head>
		<script>
			function getLabelValue()
			{
				alert(document.getElementById("labelvalue").innerText);
			}
		</script>
	</head>
	<body>
		<html:form>
			<label id="labelvalue">FOOOOOOO</label>
			<input type="button" onclick="getLabelValue()"/>
		</html:form>
	</body>
</html>
&#13;
&#13;
&#13;

现在向JSP添加一个隐藏属性( Form 类中的属性)。提交时调用这个JS函数

function setLabelValueToFormAttribute()
{
    document.getElementById("hiddenProperty").value = document.getElementById("labelvalue").innerText;
}

答案 1 :(得分:2)

您可以添加带有标签字段的隐藏字段,并将值设置为隐藏字段。您可以将隐藏字段名称设置为该标签名称。

<html:form action="action.do">
<label  id="labelvalue">label_Value</label>
<input type="hidden" name="labelvalue" value="label_Value"/> 
</html:form>