Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在struts2中基于java flg创建一个禁用/启用按钮_Java_Html_Jsp_Struts2_Struts Tags - Fatal编程技术网

在struts2中基于java flg创建一个禁用/启用按钮

在struts2中基于java flg创建一个禁用/启用按钮,java,html,jsp,struts2,struts-tags,Java,Html,Jsp,Struts2,Struts Tags,行动: 公共类TuAction()扩展了ActionSupport{ private boolean loseItemFlg=false; 私有字符串doFuilureOrder(){ 如果(…){ loseItemFlg=真; } 回归成功; } 公共布尔值isLoseItemFlg(){ 返回loseItemFlg; } public void setLoseItemFlg(布尔loseItemFlg){ this.loseItemFlg=loseItemFlg; } } 和我的Jsp:

行动:

公共类TuAction()扩展了ActionSupport{
private boolean loseItemFlg=false;
私有字符串doFuilureOrder(){
如果(…){
loseItemFlg=真;
}
回归成功;
}
公共布尔值isLoseItemFlg(){
返回loseItemFlg;
}
public void setLoseItemFlg(布尔loseItemFlg){
this.loseItemFlg=loseItemFlg;
}
}
和我的Jsp:

函数对话框打开(formName,actionName){
如果(comfirm(“您想这样做吗?”)){
....
document.forms[formName].action=actionName;
document.forms[formName].submit();
}否则{
//我不想重新加载页面。
}
}

但是这个代码按钮的禁用属性不是由我控制的!! 然后我将jsp更改为:


现在按钮的disable属性由我的控件控制,但是,
“doFuilureOrder()”
不由我使用

关于不重新加载页面应该在我的jsp中做什么


我的英语很糟糕,这是我第一次使用stackoverflow。有人知道我的意思。

您不能将scriptlet嵌套在Struts标记中(如第二种情况),而您可以(但您不应该,因为使用scriptlet是一种糟糕的做法)将它们注入HTML标记中

然后可以在HTML标记中使用
标记(第一种情况)


,或替换Struts标记中的scriptlet(第二种情况),最好使用
标记装载URL:


他们都工作

用法也可以(而且应该)应用于第一种情况:


对于输入标记,禁用的属性不基于真/假。当您写入禁用属性时,输入默认为禁用,请检查

然后在jsp中:

 <input type = "button"
<s:property value="%{loseItemFlg}"/> value="lose" onclick = "dialogOpen('tuAction'),'<%request.getContextPath()%>/tuAction_doFuilureOrder.action')" />

这样编码是不可能的。
<s:if test="%{loseItemFlg}"> // if true - button disabled state
  <input type="button" disabled value="lose" onclick="dialogOpen('tuAction','<%request.getContextPath()%>/tuAction_doFuilureOrder.action')"/>
</s:if><s:else> //button enabled
   <input type="button" value="lose" onclick="dialogOpen('tuAction','<%request.getContextPath()%>/tuAction_doFuilureOrder.action')"/>
</s:else>
private String loseItemFlg='';

private String doFuilureOrder(){
    if(...){
       loseItemFlg="disabled";
    }
    return SUCCESS;
}
public String getLoseItemFlg() {
    return loseItemFlg;
}

public void setLoseItemFlg(String loseItemFlg) {
    this.loseItemFlg = loseItemFlg;
}
 <input type = "button"
<s:property value="%{loseItemFlg}"/> value="lose" onclick = "dialogOpen('tuAction'),'<%request.getContextPath()%>/tuAction_doFuilureOrder.action')" />