如何在输入中输入“,”每4个数字,我有这样的事情:
<p:inputMask mask="9999, 9999" placeHolder="_"/>
但我需要“N”值,所以我不知道该怎么做。
答案 0 :(得分:0)
输入掩码可用于约束输入,这在用户将数据输入系统时受到约束。您无法设置没有限制数字。
我建议你改用转换器。
XHTML
<h:form>
<p:inputText id="input"
converter="numberConverter"
value="#{inputTextView.numberInput}" >
<p:ajax process="input"
update="input"
event="blur"/>
</p:inputText>
</h:form>
managedbean
@SessionScoped
@ManagedBean(name = "inputTextView")
public class InputTextView {
private String numberInput;
public String getNumberInput() {
return numberInput;
}
public void setNumberInput(String numberInput) {
this.numberInput = numberInput;
}
}
转换器
import java.io.Serializable;
import java.math.RoundingMode;
import java.text.DecimalFormat;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
import javax.faces.convert.FacesConverter;
/**
*
* @author Wittakarn
*/
@FacesConverter("numberConverter")
public class NumberConverter implements Serializable, Converter {
public Object getAsObject(FacesContext fc, UIComponent uic, String string) {
return string.replaceAll(",", "");
}
public String getAsString(FacesContext fc, UIComponent uic, Object o) {
String resp = "";
DecimalFormat decimalFormat;
if (o != null) {
decimalFormat = new DecimalFormat("#,####");
decimalFormat.setRoundingMode(RoundingMode.HALF_UP);
try {
resp = decimalFormat.format(Double.parseDouble(o.toString()));
} catch (Exception ex) {
ex.printStackTrace();
}
}
return resp;
}
}