在这段代码中:
public class MyClass {
private Object innerValue;
public Object getInnerValue() {
return this.innerValue;
}
public void setInnerValue(Object innerValue) {
this.innerValue = innerValue;
}
}
public class MyClassReadOnly extends MyClass {
MyClassReadOnly(MyClass cls) {
// Make a field by field copy
super.setInnerValue(cls.getInnerValue());
}
public void setInnerValue(Object innerValue) {
throw new UnsupportedOperationException(
"This is a read-only instance"
);
}
}
Run Code Online (Sandbox Code Playgroud)
编译器正确地抱怨未使用的参数(从未看过)innerValue在MyClassReadOnly.setInnerValue() .
我不想禁用这种警告,因为它通常非常有用,而且我不希望任何警告要么具有高信噪比.
我不能使用@SuppressWarnings()构造作为另一个问题,因为它只是Java 1.4.
我想过插入像这样的虚拟代码,但它不是很令人满意:
public void setInnerValue(Object innerValue) {
if (innerValue != null) { …Run Code Online (Sandbox Code Playgroud) 我如何创建帮助器或使用内置link_to帮助器来组合URL参数?
例如,假设我在一个URL参数为的页面上status:
http://example.com/items?status=new
我有另一个链接给运营商,我基本上想要附加到那个,就像这样:
http://example.com/items?status=new&carrier=fedex
因此,帮助程序基本上会检测URL中是否有任何参数,然后将参数附加到该参数.
我使用下面的函数创建一个显示flash对象的代码.原始闪存大小为320x240,但我想将其显示为200x150,因此我使用params宽度为200,高度为150的函数.所有浏览器都能正常工作,但chrome不能.它显示为200x151(检查代码显示200x151大小).为什么?
function getFlashCode(params)
{
debug('getFlashCode');
var defaultParams = {movie: '', flashvars: {}, width:'', height: ''};
for (var key in defaultParams)
{
if (params[key] === undefined)
params[key] = defaultParams[key];
}
var flashvars = '';
for (var key in params.flashvars)
flashvars += encodeURIComponent(key) + '=' + encodeURIComponent(params.flashvars[key]) + '&';
var id = "fl" + Math.random();
var code="";
code += " <object classid=\"clsid:d27cdb6e-ae6d-11cf-96b8-444553540000\" width=\"" + params.width + "\" height=\"" + params.height + "\" align=\"middle\" id=\"" + id + "\">";
code += " <param …Run Code Online (Sandbox Code Playgroud) 我正在使用Grails构建一个社交网络,并且不得不让用户在其编辑页面内部将youtube-Url粘贴到文本字段中,并且通过单击一个按钮,JS粘贴了粘贴的URL中的id,ajax帖子是使用youtube视频的预览图片更新div
html看起来像:
<g:textField name="videoinput" class="videoinput reLef" value="" />
<span class="daten_videouploadbtn reLef" ></span>
<g:render template="/forms/storedVideos" />
Run Code Online (Sandbox Code Playgroud)
JS看起来像:
$('.daten_videouploadbtn').click(function() {
var string = document.editProfileForm.videoinput.value;
var neu = string.replace(/http[s]?:\/\/(?:[^\.]+\.)*(?:youtube\.com\/(?:v\/|watch\?(?:.*?\&)?v=|embed\/)|youtu.be\/)([\w\-\_]+)/i, '$1');
var id = RegExp.$1;
jQuery.ajax({
type:'POST',
data:RegExp.$1,
url:'${createLink(action: 'addVideo')}',
success:function(data,textStatus){jQuery('#storedvideos').html(data);},
error:function(XMLHttpRequest,textStatus,errorThrown){}
});
});
Run Code Online (Sandbox Code Playgroud)
控制器看起来像:
def addVideo() {
def videoitems = !!%%-- HOW TO PARSE YOUTUBE-ID HERE -%%!!
render(template:"/forms/storedVideos", model: [newVideo:videoitems])
}
Run Code Online (Sandbox Code Playgroud)
和存储的视频看起来:
<div id="storedvideos"><span><img src="http://img.youtube.com/vi/${newVideo}/default.jpg" width="225px" height="130px"/></span></div>
Run Code Online (Sandbox Code Playgroud)
我只是不知道如何捕获Ajax Post的数据并使用id为里面的预览图像更新div,
有人能暗示一下吗?它杀了我
我想写一个PowerShell脚本,它接受参数并使用函数.
我试过这个:
param
(
$arg
)
Func $arg;
function Func($arg)
{
Write-Output $arg;
}
Run Code Online (Sandbox Code Playgroud)
但我得到了这个:
The term 'Func' is not recognized as the name
of a cmdlet, function, script file, or operable program.
Check the spelling of the name, or if a path was included,
verify that the path is correct and try again.
At func.ps1:6 char:5
+ Func <<<< $arg;
+ CategoryInfo : ObjectNotFound: (Func:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
Run Code Online (Sandbox Code Playgroud)
很好,我想.我会尝试这样做:
function Func($arg)
{
Write-Output $arg;
}
param …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用simple_form编辑/更新模型记录,但表单不会直接更改模型字段.相反,我提供了几个check_box_tag字段,用于告知更新需要更改的字段.因此,更新未收到可用于更新属性的params [:device]哈希.我正在尝试创建此哈希,但是当我发出@ device.update_attributes(params [:device])时,我得到了ForbiddenAttributesError.
我相信我的强参数列表是正确的.如果我允许在编辑视图中处理一个模型字段(名称),我会收到预期的参数[:device]哈希,一切正常.如果我禁用该字段,因为我不希望它被更改,那么我需要自己创建该哈希并收到错误.当我查看我创建的哈希时,它看起来等同于视图传递的哈希.我不明白为什么会失败.
环境是Ruby 2.0.0,Windows 8.1上的Rails 4.1和RubyMine 6.3.
表格是:<...一旦工作需要正确的格式...>
<%= simple_form_for @device do |f| %>
<legend><%= controller.action_name.capitalize %> Device:</legend>
<%= f.input :name, disabled: true %>
<%= check_box_tag(:is_admin, 0, @device.admin?) %>
<%= label_tag(:is_admin, "Make admin?") %>
<%= check_box_tag(:chg_pwd) %>
<%= label_tag(:chg_pwd, "Change password?") %>
<%= f.button :submit %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
我发送f.input:name,disabled:false并允许视图生成params [:device]时收到的params [:device]是:
ActionController::Parameters (3 element(s))
"{"name"=>"D105", "password"=>"D105Dvgr", "password_confirmation"=>"D105Dvgr"}"
Run Code Online (Sandbox Code Playgroud)
一切正常.
我创建的参数[:device]是:
ActionController::Parameters (3 element(s))
"{"name"=>"D106", "password"=>"D106VdAd", "password_confirmation"=>"D106VdAd"}"
Run Code Online (Sandbox Code Playgroud)
并且,我收到禁用属性错误,即使我看到两者之间没有区别.
更新是:<...代码需要重构,一旦工作......>
class DevicesController < ApplicationController
before_filter :authenticate_device!
... other methods …Run Code Online (Sandbox Code Playgroud) 我从这两种方法中得到意想不到的结果.
我让我的美元状态变得混乱
$stateProvider
.state('status', {
url: "/status/:payment",
controller: 'QuestCtrl',
templateUrl: "index.html"
});
Run Code Online (Sandbox Code Playgroud)
在控制器上我有:
angular.module('quest').controller('QuestCtrl',function($scope,$stateParams,$state){
console.log($stateParams.payment); // undefined
console.log($state); // Object {params: Object, current: Object, $current: extend, transition: null}
}
Run Code Online (Sandbox Code Playgroud)
我已经在其他项目中使用了$ stateParams并且它工作但现在我无法弄清楚这里发生了什么..
我有一个看起来像这样的订单资源.
.factory('Order', order)
order.$inject = ['$resource', "ApiEndpoint"];
function order($resource, ApiEndpoint) {
return $resource(ApiEndpoint.url + 'orders.json', {}, {
create: {method: 'POST', url: ApiEndpoint.url + 'orders.json'},
update: {method: 'PUT'},
edit: {method: 'GET', url: ApiEndpoint.url + 'orders/edit.json'},
remove_item: {method: 'GET', url: ApiEndpoint.url + 'orders/remove_item.json'},
});
}
Run Code Online (Sandbox Code Playgroud)
我这样跑的Order.update时候
var params = {
order: {
line_items_attributes: {0: {quantity: 2, id: 1}}
},
order_id: 3
};
Order.update(params, function (resp, respHeaders) {
console.log("response headers", respHeaders());
console.log("change quantity resp", resp);
})
Run Code Online (Sandbox Code Playgroud)
我也试过这个:
Order.update({}, params, function (resp, …Run Code Online (Sandbox Code Playgroud) 我正在使用python requests模块,我之前发送过这样的参数:
requests.post(url=url, params=params)
Run Code Online (Sandbox Code Playgroud)
但是今天,我发现我像这样发送数据,但失败了,我改成这样:
requests.post(url=url, data=params)
Run Code Online (Sandbox Code Playgroud)
那没关系,data和和有params什么区别?
我观察到请求有一个标头X-Requested-With:XMLHttpRequest,是因为这个吗?
我正在使用Rails 4.2.3.我在控制器中有这个...
def create
@myobject = MyObject.new(MyObject_params(:params))
@current_user = User.find(session["user_id"])
@myobject.user = @current_user
if @myobject.save
respond_to do |format|
format.html { redirect_to controller: "users", action: "index", notice: 'Saved successfully.' }
end
else
format.html { render action: "index" }
end
end
private
def MyObject_params(params)
# Main Code goes here
params.require(:myobject).permit(:time_in_ms, :name)
params[:myobject][:time_in_ms] = (params[:myobject][:hour].to_i * 60 * 60 + params[:myobject][:minute].to_i * 60 + params[:myobject][:second].to_i) * 1000
end
Run Code Online (Sandbox Code Playgroud)
但是当我提交表单时,我收到错误
private method `require' called for :params:Symbol
Run Code Online (Sandbox Code Playgroud)
在这一行,"params.require(:myobject).permit(:time_in_ms,:name,:distance,:distance_units)".不知道我错过了什么(或者我不小心包括在内).谢谢你的帮助, - 戴夫
编辑:
在尝试给出建议后,我得到了错误
When assigning attributes, …Run Code Online (Sandbox Code Playgroud)