小编Joh*_*n S的帖子

定义一个必须为空且没有属性的XML元素

我需要定义一个没有子元素或任何内容的XML元素,并且没有属性.

这就是我在做的事情:

<xs:element name="myEmptyElement" type="_Empty"/>
<xs:complexType name="_Empty">
</xs:complexType>
Run Code Online (Sandbox Code Playgroud)

这似乎工作正常,但我不得不怀疑是否有办法这样做,而不必声明一个复杂的类型.此外,如果我有什么问题,请告诉我.

预计有人可能会好奇为什么我需要这样一个元素:它适用于不需要任何参数值的SOAP操作.

xml xsd

25
推荐指数
1
解决办法
2万
查看次数

在Spring MVC 3.1控制器的处理程序方法中直接流到响应输出流

我有一个控制器方法来处理ajax调用并返回JSON.我正在使用json.org的JSON库来创建JSON.

我可以做以下事情:

@RequestMapping(method = RequestMethod.POST)
@ResponseBody
public String getJson()
{
    JSONObject rootJson = new JSONObject();

    // Populate JSON

    return rootJson.toString();
}
Run Code Online (Sandbox Code Playgroud)

但是将JSON字符串放在一起是有效的,只是让Spring将它写入响应的输出流.

相反,我可以将它直接写入响应输出流,如下所示:

@RequestMapping(method = RequestMethod.POST)
public void getJson(HttpServletResponse response)
{
    JSONObject rootJson = new JSONObject();

    // Populate JSON

    rootJson.write(response.getWriter());
}
Run Code Online (Sandbox Code Playgroud)

但似乎有一个更好的方法来做到这一点,而不是诉诸于传递HttpServletResponse给处理程序方法.

是否有另一个类或接口可以从我可以使用的处理程序方法返回,以及@ResponseBody注释?

spring spring-mvc httpresponse

21
推荐指数
1
解决办法
3万
查看次数

测试JSP EL表达式中BigDecimal值是否为零

以下并不总是像您期望的那样:

<c:if test="${someBigDecimal == 0}">
Run Code Online (Sandbox Code Playgroud)

如果someBigDecimal的值为0,但其标度不是0,则==操作返回false.也就是说,当someBigDecimal是new BigDecimal("0")时返回true,但是当someBigDecimal是new BigDecimal("0.00")时返回false.

这是由JSP 2.0,2.1和2.2规范产生的,它们声明:

对于<,>,<=,> =:

如果A或B是BigDecimal,则将A和B强制转换为BigDecimal并使用A.compareTo(B)的返回值.

对于==,!=:

如果A或B是BigDecimal,则将A和B强制转换为BigDecimal,然后:

  • 如果运算符是==,则返回A.equals(B)
  • 如果操作符是!=,则返回!A.equals(B)

这意味着==!=运算符会导致对.equals()方法的调用,该方法不仅会比较值,还会比较BigDecimals的比例.其他比较运算符导致对.compareTo()方法的调用,该方法仅比较值.

当然,以下方法可行:

<c:if test="${not ((someBigDecimal < 0) or (someBigDecimal > 0))}">
Run Code Online (Sandbox Code Playgroud)

但这是相当丑陋的,有没有更好的方法来做到这一点?

java jsp el bigdecimal

19
推荐指数
1
解决办法
2万
查看次数

如何在select2多选中预先选择值?

我有这样的多重选择:

<select multiple="multiple" class="myList">
        <option value="1" selected="selected">Apple</option>
        <option value="2" selected="selected">Mango</option>
        <option value="3" selected="selected">Orange</option>
</select>
Run Code Online (Sandbox Code Playgroud)

现在,除了必须在选择框中选择的那些选项之外,我还想要额外的ajax功能,它可以从远程源提供值.

这是我的select2代码

$(function(){
    $(".myList").each(function(){

                $(this).select2({
                placeholder: "Search for fruits",
                minimumInputLength: 2,
                multiple: true,
                id: function(e) { 
                return e.id+":"+e.name; },
                ajax: {
                    url: "https://localhost:8443/fruit_search",
                    dataType: 'json',
                    data: function(term, page) {
                        return {
                            q: term
                        };
                    },
                    results: function(data, page) {
                    var frts=[];
                        $.each(data,function(idx,Frt){
                            frts[frts.length]=Frt;
                        });
                        return {
                            results: frts
                        };
                    }
                },
                initSelection: function(element, callback) {
                    var data = [];
                },
                formatResult: formatResult,
                formatSelection: formatSelection
                });
        }); …
Run Code Online (Sandbox Code Playgroud)

javascript jquery jquery-select2

12
推荐指数
3
解决办法
3万
查看次数

Select2 multiple-select - 以编程方式取消选择/取消选择项目

我有一个select2列表和一组外部按钮.我想单击外部按钮并取消选择select2列表中的相应项目.我知道我可以使用命令从外部值中选择项目

$("#external_btn").click(function() {
    $("#select2").val("CA").trigger("change");
});  
Run Code Online (Sandbox Code Playgroud)

因此,当我点击"external_btn"按钮时,将在select2上选择"ca"项.

但是如何才能取消选择项目呢?谢谢.

javascript jquery jquery-select2

7
推荐指数
3
解决办法
7337
查看次数

使用 Formatter 时如何防止 Spring 使用默认转换逻辑

我编写了一个自定义 Spring 格式化程序(它实现了org.springframework.format.Formatter接口),用于将表单输入值转换BigDecimal为美元输入值。格式化程序不接受小数点后超过两位数的值。在这种情况下, aParseException由格式化程序的parse()方法抛出。

public class InputDollarBigDecimalFormatter
    implements Formatter<BigDecimal>
{
    @Override
    public BigDecimal parse(String text, Locale locale)
        throws ParseException
    {
        // ...
    }

    @Override
    public String print(BigDecimal amount, Locale locale)
    {
        // ...
    }
}
Run Code Online (Sandbox Code Playgroud)

格式化程序已注册,因此可以使用名为@InputDollarBigDecimalFormat.

我的表单支持对象中应用了格式化程序的字段如下所示:

@InputDollarBigDecimalFormat
private BigDecimal price;
Run Code Online (Sandbox Code Playgroud)

格式化程序工作正常。

问题是当ParseException抛出 时,Spring 仍然尝试BigDecimal使用默认转换将输入值转换为 a 。该装置的输入值100.123仍成功地转换为一个BigDecimal,即使我的自定义格式抛出一个ParseException

BigDecimal当我的自定义格式化程序通过抛出 a 拒绝该值时,如何防止 Spring 将输入值转换为a ParseException

我正在使用 Spring 3.1.0。

Spring …

data-binding spring spring-mvc

5
推荐指数
1
解决办法
506
查看次数