我需要定义一个没有子元素或任何内容的XML元素,并且没有属性.
这就是我在做的事情:
<xs:element name="myEmptyElement" type="_Empty"/>
<xs:complexType name="_Empty">
</xs:complexType>
Run Code Online (Sandbox Code Playgroud)
这似乎工作正常,但我不得不怀疑是否有办法这样做,而不必声明一个复杂的类型.此外,如果我有什么问题,请告诉我.
预计有人可能会好奇为什么我需要这样一个元素:它适用于不需要任何参数值的SOAP操作.
我有一个控制器方法来处理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注释?
以下并不总是像您期望的那样:
<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)
但这是相当丑陋的,有没有更好的方法来做到这一点?
我有这样的多重选择:
<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) 我有一个select2列表和一组外部按钮.我想单击外部按钮并取消选择select2列表中的相应项目.我知道我可以使用命令从外部值中选择项目
$("#external_btn").click(function() {
$("#select2").val("CA").trigger("change");
});
Run Code Online (Sandbox Code Playgroud)
因此,当我点击"external_btn"按钮时,将在select2上选择"ca"项.
但是如何才能取消选择项目呢?谢谢.
我编写了一个自定义 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 …
javascript ×2
jquery ×2
spring ×2
spring-mvc ×2
bigdecimal ×1
data-binding ×1
el ×1
httpresponse ×1
java ×1
jsp ×1
xml ×1
xsd ×1