小编Lod*_*ger的帖子

JSF SelectItems和转义(xss)

在我的例子中有一个selectOneMenu,其中包含af:selectItems-attribute.select-items从我的bean解析如下:

<h:selectOneMenu value="#{bean.value}">
    <f:selectItems value="#{bean.selectItems}" var="obj" itemValue="#{obj}" itemLabel="#{obj.name}"/>
</h:selectOneMenu>
Run Code Online (Sandbox Code Playgroud)

我的bean中的方法getSelectItems()看起来像这样:

    public List<MyObject> getSelectItems() {
        List<MyObject> list = new LinkedList<MyObject>();

        MyObject obj = new MyObject("Peter");
        list.add(obj);

        return list;
    }
Run Code Online (Sandbox Code Playgroud)

显示的对象是具有属性"name"的简单对象.

在这一点上没什么特别的.但现在我改变我的方法:

 public List<MyObject> getSelectItems() {
        List<MyObject> list = new LinkedList<MyObject>();

        MyObject obj = new MyObject("<script>alert('xss is bad');</script>");
        list.add(obj);

        return list;
    }
Run Code Online (Sandbox Code Playgroud)

JavaScript没有被MenuRenderer-Class转义,我的页面显示警报消息.

是否有任何原因导致SelectItem的escape属性的默认值为"false"?我该如何解决这个问题?(我使用Mojarra 2.1.7)

xss jsf mojarra

10
推荐指数
1
解决办法
3068
查看次数

Spring Web-Service unmarshalling无法正常工作

我已经像这样配置了我的WebService:

的applicationContext:

<sws:annotation-driven />    
 <bean class="org.springframework.ws.server.endpoint.mapping.PayloadRootAnnotationMethodEndpointMapping" >
<property name="interceptors">
 <list>
    <bean class="org.springframework.ws.server.endpoint.interceptor.PayloadLoggingInterceptor"/>
</list>
</property>
Run Code Online (Sandbox Code Playgroud)

注意:Interceptor在启动时加载,但是如果请求进来,则不会写任何内容.

我有一个PersonServiceImpl类,方法是addPersonRequest().如果我使用org.dom4j.Element作为方法参数,一切正常;

@Endpoint
public class PersonServiceImpl {
     @PayloadRoot(namespace = "http://www.example.org/person/schema", localPart = "AddPersonRequest")
     @ResponsePayload
       public AddPersonRequest addPersonRequest(@RequestPayload Element element) {
        System.out.println(element.asXML());
        Person response = new Person();
        response.setId(2);
        response.setFirstName("Mad");
        response.setLastName("Mike");
        return response;
     }
}
Run Code Online (Sandbox Code Playgroud)

但是,如果我更改我的方法参数,如下所示(因此应该使用spring-ws的自动编组),request.getFirstName()将打印null.(JAXB2在类路径上).

Person-class使用@XMLType和@XMLRootElement注释.

注意:编组工作正常.

@Endpoint
public class PersonServiceImpl {
     @PayloadRoot(namespace = "http://www.example.org/person/schema", localPart = "AddPersonRequest")
     @ResponsePayload
       public AddPersonRequest addPersonRequest(@RequestPayload Person request, SoapHeader header) {
        System.out.println(header.getName());
        System.out.println(request.getFirstName());
        Person response = new Person();
        response.setId(2);
        response.setFirstName("Mad");
        response.setLastName("Mike"); …
Run Code Online (Sandbox Code Playgroud)

spring web-services spring-ws

8
推荐指数
1
解决办法
1万
查看次数

在jodatime中计算一个月的周数

有可能在jodatime中计算一个月的周数吗?

我需要这样的东西:

月:七月

  • 27周; 1-7.七月
  • 28周; 9-14.七月
  • 29年周; 16-21.七月
  • 30周的一周; 23-31.七月

月:八月

  • 31年的一周; 1-4.八月
  • 32年周; 6-11.八月
  • 33年周; 13-18.八月
  • 34年周; 20-25.八月
  • 35年周; 27-31.八月

我知道我可以像这样在joda时间获得一周的一周:

new LocalDate().weekOfWeekYear()

但我不知道如何获得相关日期.

java jodatime

7
推荐指数
1
解决办法
4316
查看次数

负载均衡算法 - 特例

我们假设我有两座建筑,我可以在那里建造不同的单元.建筑物只能同时建造一个单元,但有一个最多5个单元的最后一个单元,它将按顺序构建.每个单元都有构建时间.我需要知道,考虑到已经在建筑物的构建队列中的单位,尽可能快地获得我的单位的最快解决方案.我认为像RoundRobin这样的"着名"算法在这里不起作用.

有没有算法可以解决这个问题?

algorithm load-balancing

6
推荐指数
1
解决办法
501
查看次数

Primefaces 3.3.1选项列表性能很慢

我最近将我的primefaces项目更新为新版本的primefaces.

一切似乎工作正常,但单击"添加全部"按钮时选项列表非常慢.我在列表中有一个庞大的数据集(大约130个项目).该论坛帖子中也描述了这个问题.

更新: 一个非常基本的例子应该证明问题:

<p:pickList value="#{testForm.dualList}"
            var="id"
            itemLabel="#{id}"
            itemValue="#{id}" />
Run Code Online (Sandbox Code Playgroud)

表单(在会话范围内):

@Component("testForm")
@Scope("session")
public class TestForm implements Serializable {
     private DualListModel<Integer> dualList;
     //getter & setter methods
}
Run Code Online (Sandbox Code Playgroud)

创建DualListModel的方法:

prepareForm() {
    List<Integer> source = Lists.newLinkedList();
    List<Integer> target = Lists.newLinkedList();
    //add 100 integers as source:
    for(int i = 0; i <= 99; i++) {
       source.add(i);
    }

    DualListModel<Integer> model = new DualListModel<Integer>(source, target);
    testForm.setDualList(model);
}
Run Code Online (Sandbox Code Playgroud)

有什么我可以做的让它更快?

jsf primefaces jsf-2

6
推荐指数
1
解决办法
1614
查看次数

Spring Data Rest:具有相同request-mapping-path的RestController中的Override方法

在我们的应用程序中提供以下工作存储库:

public interface PersonRepository extends PagingAndSortingRepository<Person, Integer> {

}
Run Code Online (Sandbox Code Playgroud)

该存储库通过带有URI“ / api / persons”的spring-data-rest公开,并且可以正常工作。

现在,我们想在RestController的方法中重写存储库的后方法:

@RestController
@RequestMapping("/persons")
public class PersonController {

@RequestMapping(value = "/**", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<String> savePerson(@RequestBody Person person) {
      //do something fancy
      return "it works";
}
Run Code Online (Sandbox Code Playgroud)

如果我们将数据发布到“ / api / persons”,则将调用PersonController的方法,但是PersonRepository的任何方法(例如GET)都无法通过rest访问。我们不断收到405错误和以下异常:

org.springframework.web.HttpRequestMethodNotSupportedException: Request method 'GET' not supported
Run Code Online (Sandbox Code Playgroud)

经过一番摸索之后,我们发现,如果我们将@RequestMapping批注的值属性更改为:

value="/**"
Run Code Online (Sandbox Code Playgroud)

value="/save"
Run Code Online (Sandbox Code Playgroud)

阅读此问题和链接的文档后,如果值属性为“ / **”,则它也应该起作用

rest spring spring-data-rest

5
推荐指数
1
解决办法
4046
查看次数

Highcharts Gauge:标签半径造型

在我的浏览器(Firefox 12)中,这个Highcharts Chart的例子看起来不正确.标签的样式与背景半径的半径不同.

在Highcharts中有任何选项来解决这个问题吗?

Thx提前.

html javascript highcharts

3
推荐指数
1
解决办法
1886
查看次数

如何使用javascript动态添加和删除Div标签

我如何简单地删除并实时添加div?并且我已经在页面上手动创建了div,因此即使第一次运行该函数它也将被删除.div被称为'testElem'

我尝试着:

            var remDiv = document.getElementById('testElem');
            document.body.removeChild(remDiv);

             var divTag = document.createElement("div");
            divTag.id = "testElem";
            document.body.appendChild(divTag);
Run Code Online (Sandbox Code Playgroud)

但脚本不起作用.我尝试在第一个remDiv之后放置一个"警报"进行测试.但它甚至没有超过那里.代码中断了.在chrome我尝试使用工具> Javascript控制台,但没有错误.有没有更好的方法来调试JavaScript,所以我可以看到错误是什么?

我只是想这样做,所以它会在每次运行函数时删除div中的内容,因此内容不会加倍.每次都不一样.

html javascript jquery

0
推荐指数
1
解决办法
2万
查看次数