有什么区别
float f = (float) 99.32 ;
Run Code Online (Sandbox Code Playgroud)
和
float f = 99.32f ;
Run Code Online (Sandbox Code Playgroud)
他们都编译成功并成功运行.
我有一个受SSO实施的Shibboleth保护的Jersey API.Shibboleth将登录用户的id放入请求属性中.在后端,我正在使用Shiro进行授权.Shiro想知道登录用户,因此它可以加载权限.
将userId从请求属性中移出并进入Shiro的正确方法是什么?现在,我正在尝试的是:
@Provider
public final class ShiroLoginFilter implements ContainerRequestFilter {
@Context
private HttpServletRequest request;
@Override
public void filter(final ContainerRequestContext requestContext)
throws IOException {
final String userId = (String) this.request.getAttribute("nameid");
final Subject subject = SecurityUtils.getSubject();
subject.login(new LocusAuthenticationToken(userId));
}
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,由于JERSEY-1960,我无法将请求上下文注入过滤器.每个用户都需要"登录"才能加载权限.我宁愿不必在API的每个方法中重复登录代码.我也不允许使用web.xml过滤器(由我的老板).我有什么好的选择吗?
我正在尝试使用DynamicJasper生成一个Jasper报告,它只是一个图表,上面没有表格.似乎没有隐藏列或抑制表的方法.我只选择生成图表有哪些选择?我会接受一个不使用DynamicJasper的解决方案,只使用JasperReports java API.
public void go() throws ColumnBuilderException, ClassNotFoundException, JRException {
super();
final AbstractColumn areas = ColumnBuilder.getNew()
.setColumnProperty("area", String.class.getName())
.setTitle("Area")
.setWidth(30)
.build();
final AbstractColumn exercises = ColumnBuilder.getNew()
.setColumnProperty("exercises", Integer.class.getName())
.setTitle("Exercises")
.setWidth(30)
.build();
final DynamicReportBuilder reportBuilder = new DynamicReportBuilder();
reportBuilder.addColumn(areas);
reportBuilder.addColumn(exercises);
reportBuilder.setUseFullPageWidth(true);
final GroupBuilder groupBuilder = new GroupBuilder();
groupBuilder.setCriteriaColumn((PropertyColumn) areas);
groupBuilder.setGroupLayout(GroupLayout.EMPTY);
final DJGroup group = groupBuilder.build();
reportBuilder.addGroup(group);
reportBuilder.addChart(this.chart((PropertyColumn) areas, exercises));
final DynamicReport dynamicReport = reportBuilder.build();
final JasperPrint jasperPrint =
DynamicJasperHelper.generateJasperPrint(
dynamicReport,
new ClassicLayoutManager(),
new JRBeanCollectionDataSource(this.getData()));
/* PDF */
final JRPdfExporter exporter …
Run Code Online (Sandbox Code Playgroud)