t*********e 发帖数: 630 | 1 package org.converter;
import java.net.URI;
import java.net.URISyntaxException;
import javax.faces.application.FacesMessage;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
import javax.faces.convert.ConverterException;
import javax.faces.convert.FacesConverter;
@FacesConverter("org.converter.UrlConverter")
public class UrlConverter implements Converter {
@Override
public Object getAsObject(FacesContext facesContext,
UIComponent component, String value) {
StringBuilder url = new StringBuilder();
if(!value.startsWith("http://", 0)){
url.append("http://");
}
url.append(value);
try {
new URI(url.toString());
} catch (URISyntaxException e) {
FacesMessage msg = new FacesMessage("Error converting URL",
"Invalid URL format");
msg.setSeverity(FacesMessage.SEVERITY_ERROR);
throw new ConverterException(msg);
}
UrlData urlData = new UrlData(url.toString());
return urlData;
}
@Override
public String getAsString(FacesContext facesContext,
UIComponent component, Object value) {
return value.toString();
}
}
package org.converter;
public class UrlData {
private String url;
public UrlData(String url){
this.url = url;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String toString(){
return url;
}
}
package org.converter;
import java.io.Serializable;
import javax.faces.bean.SessionScoped;
import javax.inject.Named;
@Named("userData")
@SessionScoped
public class UserData implements Serializable {
private static final long serialVersionUID = 1L;
public UrlData data;
public UrlData getData() {
return data;
}
public void setData(UrlData data) {
this.data = data;
}
}
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">
JSF tutorial
Custom Converter Example
label="URL" >
一个 box 里面输入 www.google.com, 自动转换为 http://www.google.com.
前端 home.xhtml 里面直接引用类名和类变量,就像填空一样,没有用到任何配置文件。
Sounds cool? |
s****y 发帖数: 503 | |
t*********e 发帖数: 630 | 3 好像不多。
哈哈
【在 s****y 的大作中提到】 : JSF现在用的多吗?
|
z*******3 发帖数: 13709 | 4 主流银行用得比较多
我这边如果要拿银行的单
就对jsf有一定要求
要比较熟练才行
【在 t*********e 的大作中提到】 : 好像不多。 : 哈哈
|
a****i 发帖数: 1182 | 5 多,仅次于spring
【在 t*********e 的大作中提到】 : 好像不多。 : 哈哈
|
t*********e 发帖数: 630 | |
t*********e 发帖数: 630 | 7 package org.converter;
import java.net.URI;
import java.net.URISyntaxException;
import javax.faces.application.FacesMessage;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
import javax.faces.convert.ConverterException;
import javax.faces.convert.FacesConverter;
@FacesConverter("org.converter.UrlConverter")
public class UrlConverter implements Converter {
@Override
public Object getAsObject(FacesContext facesContext,
UIComponent component, String value) {
StringBuilder url = new StringBuilder();
if(!value.startsWith("http://", 0)){
url.append("http://");
}
url.append(value);
try {
new URI(url.toString());
} catch (URISyntaxException e) {
FacesMessage msg = new FacesMessage("Error converting URL",
"Invalid URL format");
msg.setSeverity(FacesMessage.SEVERITY_ERROR);
throw new ConverterException(msg);
}
UrlData urlData = new UrlData(url.toString());
return urlData;
}
@Override
public String getAsString(FacesContext facesContext,
UIComponent component, Object value) {
return value.toString();
}
}
package org.converter;
public class UrlData {
private String url;
public UrlData(String url){
this.url = url;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String toString(){
return url;
}
}
package org.converter;
import java.io.Serializable;
import javax.faces.bean.SessionScoped;
import javax.inject.Named;
@Named("userData")
@SessionScoped
public class UserData implements Serializable {
private static final long serialVersionUID = 1L;
public UrlData data;
public UrlData getData() {
return data;
}
public void setData(UrlData data) {
this.data = data;
}
}
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">
JSF tutorial
Custom Converter Example
label="URL" >
result.xhtml
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
http://www.w3.org/1999/xhtml"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets">
Result
#{userData.data}
一个 box 里面输入 www.google.com, 自动转换为 http://www.google.com.
前端 home.xhtml 里面直接引用类名和类变量,就像填空一样,没有用到任何配置文件。
Sounds cool? |
s****y 发帖数: 503 | |
t*********e 发帖数: 630 | 9 好像不多。
哈哈
【在 s****y 的大作中提到】 : JSF现在用的多吗?
|
z*******3 发帖数: 13709 | 10 主流银行用得比较多
我这边如果要拿银行的单
就对jsf有一定要求
要比较熟练才行
【在 t*********e 的大作中提到】 : 好像不多。 : 哈哈
|
a****i 发帖数: 1182 | 11 多,仅次于spring
【在 t*********e 的大作中提到】 : 好像不多。 : 哈哈
|
t*********e 发帖数: 630 | |
k*********s 发帖数: 4474 | 13 JSF和EJB都是Oracle一直力捧的
但是大多数人不买单,去用Spring
我组里正在评估把JSF换成Spring + F2 |