如何使用以下代码解组XML字符串并将其映射到下面的JAXB对象?
JAXBContext jaxbContext = JAXBContext.newInstance(Person.class);
Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
Person person = (Person) unmarshaller.unmarshal("xml string here");
Run Code Online (Sandbox Code Playgroud)
@XmlRootElement(name = "Person")
public class Person {
@XmlElement(name = "First-Name")
String firstName;
@XmlElement(name = "Last-Name")
String lastName;
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
}
Run Code Online (Sandbox Code Playgroud) 在Java中,我想获取一个double值并将其转换为a BigDecimal并将其String值打印到一定的精度.
import java.math.BigDecimal;
public class Main {
public static void main(String[] args) {
double d=-.00012;
System.out.println(d+""); //This prints -1.2E-4
double c=47.48000;
BigDecimal b = new BigDecimal(c);
System.out.println(b.toString());
//This prints 47.47999999999999687361196265555918216705322265625
}
}
Run Code Online (Sandbox Code Playgroud)
它打印这个巨大的东西:
47.47999999999999687361196265555918216705322265625
并不是
47.48
我正在进行BigDecimal转换的原因有时候,double值会包含很多小数位(即-.000012),将double转换为String时会产生科学记数法-1.2E-4.我想以非科学记数法存储String值.
我想让BigDecimal总是有两个精度单位:"47.48".BigDecimal可以限制转换为字符串的精度吗?
有没有人知道在ui:repeat facelets标签中获取元素索引的方法?
<ui:repeat id="topTenGrd" var="dream" value="#{dreamModifyBean.topDreams}">
<h:outputText class="dream-title uppercase" value="#{dream.number}. #{dream.title}" />
</ui:repeat>
Run Code Online (Sandbox Code Playgroud) 是否可以将JAX-RS Web服务重定向到另一个网页?
就像你使用Servlet一样response.sendRedirect("http://test/test.html").
JAX-RS Web服务本身应该重定向.我正在使用RESTEasy,如果这是相关的.
Spring Security intercept-url模式与path/**或path/*有什么区别我看过一些Spring安全配置有以下内容,但我不明白/*vs/**
我正在实现一个JSF组件库,你必须覆盖正在使用的css,否则它将使用其默认的css.我正试图隐藏div,我试图设置rich-panelbar-header-act class style="display:none",但然后它拉入其默认的CSS.有没有办法添加一个样式属性rich-panelbar-header-act(因为我必须实现该类)隐藏div?我在下面包含了我的CSS和HTML
CSS:
element.style {
}
Matched CSS Rules
.rich-panelbar-header-act {
background-image: url(/spot-main-web/a4j/g/3_3_3.Finalorg.richfaces.renderkit.html.GradientA/DATB/eAGLj48PDQ1lBAAJswIe.html);
background-position: top left;
background-repeat: repeat-x;
vertical-align: middle;
color: #FFF;
background-color: #555;
font-size: 11px;
font-weight: bold;
font-family: Arial,Verdana,sans-serif;
}
.rich-panelbar-header-act {
border: 0 solid red;
padding: 0 1px 1px 5px;
cursor: pointer;
}
user agent stylesheetdiv {
display: block;
}
Inherited from body.browserChrome.browserChrome2
body {
font: 12px/17px Helvetica, Arial, Verdana;
}
Run Code Online (Sandbox Code Playgroud)
HTML:
<html version="XHTML 2.0" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head></head>
<body> …Run Code Online (Sandbox Code Playgroud) 我在接受采访时被问到以下问题:如果你有一个整数堆栈,你如何在不使用Collections.max的情况下找到堆栈的最大值,而不是迭代堆栈并比较元素.我用下面的代码回答它,因为我不知道使用任何Collections API或迭代Stack并使用比较的另一种方式.有任何想法吗?
import java.util.Collections;
import java.util.Stack;
public class StackDemo {
public static void main(String[] args){
Stack lifo = new Stack();
lifo.push(new Integer(4));
lifo.push(new Integer(1));
lifo.push(new Integer(150));
lifo.push(new Integer(40));
lifo.push(new Integer(0));
lifo.push(new Integer(60));
lifo.push(new Integer(47));
lifo.push(new Integer(104));
if(!lifo.isEmpty()){
Object max = Collections.max(lifo);
System.out.println("max=" + max.toString());
}
}
}
Run Code Online (Sandbox Code Playgroud) 我正在使用Spring Security,我想将另一个站点用作我的身份验证提供程序之一.我在我的网站上有一个基本的表单登录.我希望在我的网站上有一个链接,将用户带到他们将登录的外部站点,然后外部站点将向我发送一个xml响应,其中包含我可以验证的数据以查看是否有成功登录.任何帮助将不胜感激!
使用以下指导的示例:
过滤器(未显示我的数据来自请求的xml):
public class XMLAuthenticationFilter extends AbstractAuthenticationProcessingFilter{
public XMLAuthenticationFilter() {
super("/xml_security_check");
}
@Override
public Authentication attemptAuthentication(HttpServletRequest request,
HttpServletResponse response) throws AuthenticationException,
IOException, ServletException {
GrantedAuthority[] grantedAuthorities = new GrantedAuthority[] { new GrantedAuthorityImpl("ROLE_USER")};
UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken("userid", "pwd", grantedAuthorities);
request.getSession();
token.setDetails(new WebAuthenticationDetails(request));
Authentication authenticatedUser = super.getAuthenticationManager().authenticate(token);
SecurityContextHolder.getContext().setAuthentication(authenticatedUser);
request.getSession().setAttribute(HttpSessionSecurityContextRepository.SPRING_SECURITY_CONTEXT_KEY, SecurityContextHolder.getContext());
return authenticatedUser;
}
Run Code Online (Sandbox Code Playgroud)
}
认证提供者:
public class XMLAuthenticationProvider extends AbstractUserDetailsAuthenticationProvider{
private UserManager userManager;
@Override
protected void additionalAuthenticationChecks(UserDetails user, UsernamePasswordAuthenticationToken token) throws AuthenticationException {
}
@Override
protected …Run Code Online (Sandbox Code Playgroud) 我需要根据用户来自哪里修改我的spring security登录页面.我的客户希望两者之间的风格不同.如果你来自appcontextroot/testVS appcontextroot/choose.我尝试执行以下操作,但它String url=savedRequest.getRedirectUrl();已经等于spring登录页面,而不是用户请求的初始页面.有任何想法吗?
ExternalContext externalContext = FacesUtils.getExternalContext();
HttpServletRequest request = (HttpServletRequest)externalContext.getRequest();
HttpSession session = request.getSession(false);
if(session != null) {
SavedRequest savedRequest = new DefaultSavedRequest(request, new PortResolverImpl());
String url=savedRequest.getRedirectUrl();
}
Run Code Online (Sandbox Code Playgroud) 在创建文件时,如何将uuid.uuid4()值与文字连接?以下是不正确的,但应说明我正在尝试做什么......
fo = open(uuid.uuid4() + ".txt", "wb")
Run Code Online (Sandbox Code Playgroud)