我有一个Web应用程序调用EWS托管API连接到office365.
我在MSDN上关注了EWS Managed API 2.0客户端应用程序入门文档.
在web.config我指定的代理pac:
<configuration>
<system.net>
<defaultProxy useDefaultCredentials="false">
<proxy autoDetect="False" bypassonlocal="True" scriptLocation="http://example.com:8080/proxy.pac" usesystemdefault="False" />
</defaultProxy>
</system.net>
[...]
</configuration>
Run Code Online (Sandbox Code Playgroud)
我尝试以下列方式连接到Exchange:
public static ExchangeService getExchangeService(String username)
{
ServicePointManager.ServerCertificateValidationCallback = CertificateValidationCallBack;
ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2013);
service.Credentials = new WebCredentials(USER_365, PWD_365, DOMAIN_365);
service.UseDefaultCredentials = true;
//I've tried both WebProxy settings, this:
service.WebProxy = WebRequest.GetSystemWebProxy();
//And this (with no success):
//service.WebProxy = WebRequest.DefaultWebProxy;
//I've also tried Autodiscover...
service.AutodiscoverUrl(USER_365, RedirectionUrlValidationCallback);
//...and direct url
//service.Url = new Uri("https://outlook.office365.com/EWS/Exchange.asmx"); …Run Code Online (Sandbox Code Playgroud) 我在Web应用程序中有这个Singleton类.
public class MyDAO
{
private static MyDAO instance;
private MyDAO() {
}
public static MyDAO getInstance() {
if (instance == null) {
instance = new MyDAO();
}
return instance;
}
Run Code Online (Sandbox Code Playgroud)
我会这样访问它
public void get_Data()
{
MyDAO dao = MyDAO.getInstance();
}
Run Code Online (Sandbox Code Playgroud)
如果有3个用户访问应用程序,将创建多少个MyDAO类对象?
每个用户会有一个MyDAO实例吗?
我正在尝试在运行我的Web应用程序的同一服务器上连接到Spring RESTful服务。
我想使用“相对”路径,因为它可以安装在多个环境(本地主机,测试,生产环境)中,但出现错误消息:URI is not absolute。
如何调用在同一服务器上的另一个Web应用程序上运行的服务?
我的代码如下:
final RestTemplate restTemplate = new RestTemplate();
URI uri;
try {
String url = "app2/myservice?par=1";
uri = new URI(url);
String result = restTemplate.getForObject(uri, String.class);
System.out.println(result);
} catch (URISyntaxException e) {
logger.error(e.getMessage());
}
Run Code Online (Sandbox Code Playgroud)
谢谢。
更新:
我通过从那里获取主机,端口等来解决它request,这是一个正确而优雅的解决方案吗?这是我实际的简化代码:
String scheme = request.getScheme();
String userInfo = request.getRemoteUser();
String host = request.getLocalAddr();
int port = request.getLocalPort();
String path = "/app2/myservice";
String query = "par=1";
URI uri = new URI(scheme, userInfo, host, port, …Run Code Online (Sandbox Code Playgroud) 我无法在其事件处理程序中获取触发事件的 html 字段(在 javascript 中是event.target)。
我有一个表格:
我的代码如下所示:
var Main = {
methods: {
change(par) {
console.log("The value is: " + par);
//HERE I can't get "event.target"
}
}
};
var Ctor = Vue.extend(Main)
new Ctor().$mount('#app')Run Code Online (Sandbox Code Playgroud)
<script src="//unpkg.com/vue/dist/vue.js"></script>
<script src="//unpkg.com/element-ui@1.4.0-beta.1/lib/index.js"></script>
<div id="app">
<template>
<el-input @change="change" placeholder="Input something here"/>
</template>
</div>Run Code Online (Sandbox Code Playgroud)
我知道我可以调用不同的函数,并且在每个函数中我都知道谁是相对输入,但我想使用一个通用的。
按照我在element-ui.common.js事件触发代码中看到的堆栈跟踪:
handleChange: function handleChange(event) {
this.$emit('change', event.target.value);
},
Run Code Online (Sandbox Code Playgroud)
并且element只将值传递给事件处理程序。
无论如何,有什么想法可以得到event.target吗?
谢谢
我有一个输入字段,用户可以在其中插入日期范围之间的日期。
所以我在 JQuery 验证器对象上添加了一个新方法:
$.validator.addMethod("dateRange", function(value, element, from, to){
try {
var date = new Date(value);
if(date >= from && date <= to)
return true;
} catch(e) {
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
然后我添加了新的班级规则:
$.validator.addClassRules({
myDateFieldRangeValidate: {
dateRange: {fromDate, toDate}
}
});
Run Code Online (Sandbox Code Playgroud)
最后我将类添加到输入中:
$("#myField").addClass("myDateFieldRangeValidate");
Run Code Online (Sandbox Code Playgroud)
那么,如何将这两个日期传递给验证函数呢?
更新:添加了代码片段
$.validator.addMethod("dateRange", function(value, element, from, to){
try {
var date = new Date(value);
if(date >= from && date <= to)
return true;
} catch(e) {
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
$.validator.addClassRules({
myDateFieldRangeValidate: {
dateRange: {fromDate, toDate}
} …Run Code Online (Sandbox Code Playgroud)我有一个包含一些必填字段的表单,具体取决于 a selectOneMenu,如下所示:
<p:selectOneMenu id="myList" value="#{myBean.selectedItem}">
<p:selectItems value="#{myBean.myItems}" />
<p:ajax listener="#{myBean.myList_change}"
process="myList field1 field2 field3"
update="field1 field2 field3" />
</p:selectOneMenu>
<p:inputNumber id="field1" required="true" />
<p:inputNumber id="field2" required="#{myBean.selectedItem gt 1}" />
<p:inputNumber id="field3" required="#{myBean.selectedItem gt 2}" />
Run Code Online (Sandbox Code Playgroud)
我第一次按下提交按钮时,没有填写必填字段:
<p:commandButton id="mySubmit" action="#{myBean.myAction}" />
Run Code Online (Sandbox Code Playgroud)
我收到验证错误,然后如果我更改selectOneMenu值,将不再评估所需的表达式。
例如,如果我提交表单时selectedItem equals to 3出现所有验证错误,那么我提交表单时selectedItem equals to 1,primefaces 仍然要求所有三个字段都为必填字段。
我尝试向按钮添加一个 resetInput:
<p:resetInput target=":myForm" />
Run Code Online (Sandbox Code Playgroud)
而不是immediate="true"到了selectOneMenu,没有任何成功。
有什么想法吗?
注意:PrimeFaces 版本为 6.2
PS:在图片中,只需要第一个字段,但应该需要所有元素。
遵循完整的最小可重现示例:
xhtml 文件 (test.xhtml):
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE …Run Code Online (Sandbox Code Playgroud) java ×2
javascript ×2
.net ×1
asp.net ×1
c# ×1
element-ui ×1
jquery ×1
office365api ×1
primefaces ×1
singleton ×1
spring ×1
uri ×1
vue.js ×1