作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 ATG 中,如果没有满足其他条件,Switch Droplet 将转到默认 oparam。
我有一个 Droplet,我希望它具有类似的行为。您可以在页面上调用它并将代码放入 oparam 条件内。如果您没有从 Droplet 返回的 oparam 的情况,则它应该采用默认值。
droplet.java
public void service(DynamoHttpServletRequest request, DynamoHttpServletResponse response)
throws ServletException, IOException
{
String b = (String) request.getParameter("a");
if(b != null && b.equals("c")){
request.serviceLocalParameter("d", request, response);
}else{
request.serviceLocalParameter("e", request, response);
}
}
droplet.jsp
<dsp:droplet name="Droplet">
<dsp:oparam name="d">
<!-- d param was set -->
</dsp:oparam>
<dsp:oparam name="default">
<!-- e, or some other param was set -->
</dsp:oparam>
</dsp:droplet>
我对 ATG 有点陌生,所以我可能会以错误的方式处理这个问题......
最佳答案
如果您尝试为不存在的本地参数提供服务,serviceLocalParameter 将返回 false。所以你所要做的就是检查 serviceLocalParameter() 返回的值,如果它是 false,你就可以服务任意数量的不同的任意本地参数。在下面的示例中,我服务于任意参数“default”(注意:默认值是任意的,它可以被称为任何东西。如果我有一个oparam“foo”和一个oparam“bar”和一个oparam“beh”我可以尝试service foo,如果失败了,我可以尝试为 bar 提供服务,如果失败了,我可以尝试为 beh 提供服务...)
因此,应用于您的示例,以下内容将执行您想要的操作:
droplet.java
public void service(DynamoHttpServletRequest request, DynamoHttpServletResponse response)
throws ServletException, IOException
{
boolean handled = false;
String b = (String) request.getParameter("a");
if(b != null && b.equals("c")){
handled = request.serviceLocalParameter("d", request, response);
}else{
handled = request.serviceLocalParameter("e", request, response);
}
/*
* Did not find a valid parameter, try servicing the
* parameter named "default" instead
*/
if (!handled) {
request.serviceLocalParameter("default", request, response);
}
}
用于说明目的的更简化版本(仅包含与服务默认值相关的代码):
boolean handled = false;
handled = request.serviceLocalParameter("nondefault", request, response);
if (!handled) {
handled = request.serviceLocalParameter("default", request, response);
}
关于java - 如何让 ATG Droplet 提供默认的 oparam,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6074248/
在 ATG 中,如果没有满足其他条件,Switch Droplet 将转到默认 oparam。 我有一个 Droplet,我希望它具有类似的行为。您可以在页面上调用它并将代码放入 oparam 条件内
我是一名优秀的程序员,十分优秀!