如何获取ZKZHTMLURL参数?
我正在使用Zk框架,并试图从zhtml页面获取url参数。我试过:如何获取ZKZHTMLURL参数?,zk,url-parameters,Zk,Url Parameters,我正在使用Zk框架,并试图从zhtml页面获取url参数。我试过: Executions.getCurrent().getParameter("param"); 虽然我在客户端尝试了zscript,在服务器端尝试了pagecomposer,但它对zhtml不起作用。但它正在为zul页面工作。如何获取zhtml的url参数作为示例: http://localhost:8080/pystest/reset_password.zhtml?param=xxx 这是我的zhtml页面: <!DO
Executions.getCurrent().getParameter("param");
虽然我在客户端尝试了zscript,在服务器端尝试了pagecomposer,但它对zhtml不起作用。但它正在为zul页面工作。如何获取zhtml的url参数作为示例:
http://localhost:8080/pystest/reset_password.zhtml?param=xxx
这是我的zhtml页面:
<!DOCTYPE html>
<?taglib uri="http://www.zkoss.org/dsp/web/core" prefix="c" ?>
<html lang="en" xmlns:zk="zk" xmlns:z="zul">
<head>
<meta charset="UTF-8"/>
<title>Reset Password</title>
<meta name="description" content="User reset password page" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<!-- basic styles -->
<link href="css/strap.css" rel="stylesheet" />
<link rel="stylesheet" href="css/font.css" />
<!-- fonts -->
<link rel="stylesheet" href="css/ace-fonts.css" />
<!--styles -->
<link rel="stylesheet" href="css/min.css" />
<link rel="stylesheet" href="css/tlr.css" />
</head>
<body class="pass-layout">
<z:div sclass="main-container" apply="component.ResetPasswordComposer">
<div class="main-content">
<div class="row">
<div class="col-sm-10 col-sm-offset-1">
<div class="pass-container">
<div class="position-relative">
<div id="resetpass-box" class="resetpass-box visible widget-box no-border">
<div class="widget-body">
<div class="widget-main">
<h4 class="header green lighter bigger">
<i class="icon-group blue"></i>
Choose your new password.
</h4>
<form>
<fieldset>
<label class="block clearfix">
<span class="block input-icon input-icon-right">
<z:textbox type="password" class="form-control" placeholder="New password" id="password1" />
<i class="icon-lock"></i>
</span>
</label>
<label class="block clearfix">
<span class="block input-icon input-icon-right">
<z:textbox type="password" class="form-control" placeholder="Verify password" id="password2"/>
<i class="icon-retweet"></i>
</span>
</label>
<div class="space-24"></div>
<div class="clearfix">
<button type="reset" class="width-30 pull-left btn btn-sm">
<i class="icon-refresh"></i>
Reset
</button>
<button id="resetButton" type="button" class="width-65 pull-right btn btn-sm btn-success">
Submit
<i class="icon-arrow-right icon-on-right"></i>
</button>
</div>
</fieldset>
</form>
</div>
<div class="toolbar center">
</div>
</div><!-- /widget-body -->
</div><!-- /resetpass-box -->
</div><!-- /position-relative -->
</div><!-- /pass-container -->
</div><!-- /col-sm-10 col-sm-offset-1 -->
</div><!-- /row -->
</div><!-- /main-content -->
</z:div><!-- /main-container -->
<!-- below script is not working -->
<zk:zscript>
<![CDATA[
alert(Executions.getCurrent().getParameter("param"));
]]>
</zk:zscript>
</body>
</html>
重置密码
选择新密码。
重置
提交
和服务器端:
public class ResetPasswordComposer extends GenericForwardComposer<Component> {
/**
*
*/
private static final long serialVersionUID = 1L;
protected Textbox password1;
protected Textbox password2;
@Override
public void doAfterCompose(Component comp) throws Exception {
super.doAfterCompose(comp);
}
public void onClick$resetButton(){
UserOperator userOperator=new UserOperator();
try{
String token=getToken();
System.out.println(token);
}catch(Exception e){
e.printStackTrace();
}
}
private String getToken(){
Execution exec = Executions.getCurrent();
String param=exec.getParameter("param");
return param;
}
}
公共类ResetPasswordComposer扩展了GenericForwardComposer{
/**
*
*/
私有静态最终长serialVersionUID=1L;
受保护的文本框密码1;
受保护的文本框密码2;
@凌驾
public void doAfterCompose(组件组件组件)引发异常{
super.doAfterCompose(comp);
}
public void onClick$resetButton(){
UserOperator UserOperator=新的UserOperator();
试一试{
字符串标记=getToken();
System.out.println(令牌);
}捕获(例外e){
e、 printStackTrace();
}
}
私有字符串getToken(){
Execution exec=Executions.getCurrent();
字符串param=exec.getParameter(“param”);
返回参数;
}
}
您的问题实际上是
private String getToken(){
Execution exec = Executions.getCurrent();
String param=exec.getParameter("param");
return param;
}
仅在doAfterCompose
cyclus中可用
在zul中,你可以通过:
${param.foo}
访问查询参数foo
,请发布你的ZHTML/zul
和Composer/ViewModel
。我在Filter类中以不同的方式完成了它。通过使用HttpServletRequest的会话参数,我可以获取该值。